Inquiridor
Consumir uma API para criar um carrinho asp.net

Discussão Geral
-
Bom dia.
Estou com um problema e nem imagino oq fazer.
estou consumindo uma API Json, e ao mesmo tempo criando um carrinho, tenho que passar 2 parâmetros customerReference e description e ao mesmo tempo meu login e senha criptografado.
Não estou conseguindo, alguém tem alguma ideia ou dica ?
var webRequest = (HttpWebRequest)WebRequest.Create("https://apiteste.com/ws- /rest/cart");
webRequest.Method = "PUT";
webRequest.ContentType = "application/json";
webRequest.Accept = "application/json";
string autorization = "Login" + ":" + "PasswordApi";
string autorization2 = "customerReference" + ":" + " #130";
string autorization3 = "description" + ":" + "Cart for #130";
byte[] binaryAuthorization = System.Text.Encoding.UTF8.GetBytes(autorization);
autorization = Convert.ToBase64String(binaryAuthorization);
autorization = "Basic " + autorization;
webRequest.Headers.Add("AUTHORIZATION", autorization);
webRequest.Headers.Add(autorization2);
webRequest.Headers.Add(autorization3);
var webResponse = (HttpWebResponse)webRequest.GetResponse();
if (webResponse.StatusCode != HttpStatusCode.OK)
Console.WriteLine("{0}", webResponse.Headers);- Tipo Alterado Marcos SJ terça-feira, 8 de dezembro de 2015 12:42 Todas as threads "How to" serão modificadas para discussão geral
Todas as Respostas
-
Dica 1- aprenda a consumir a API. Recomendo que você utilize o fiddler ou Postman para testes. Assim, você saberá o jeito certo para enviar os dados para a API.
Após aprender como a API funciona, sugiro que você utilize restSharp, fica bem mais simples na minha opinião, especialmente se você não sabe como fazê-lo.
GET:
var client = new RestClient("192.168.0.1"); var request = new RestRequest("api/item/", Method.GET); var queryResult = client.Execute<List<Items>>(request).Data;
POST
var client = new RestClient("http://192.168.0.1"); var request = new RestRequest("api/item/", Method.POST); request.RequestFormat = DataFormat.Json; request.AddBody(new Item { ItemName = someName, Price = 19.99 }); client.Execute(request);
DELETE
var item = new Item(){//body}; var client = new RestClient("http://192.168.0.1"); var request = new RestRequest("api/item/{id}", Method.DELETE); request.AddParameter("id", idItem); client.Execute(request);
PUT
RestRequest request = new RestRequest("issues/{id}.xml", Method.PUT); request.AddParameter("id", ticket.id, ParameterType.UrlSegment); request.XmlSerializer = new RedmineXmlSerializer(); request.AddBody(ticket); RestClient client = new RestClient(_baseUrl); client.Authenticator = new HttpBasicAuthenticator(_user, _password); IRestResponse response = client.Execute(request);
http://restsharp.org/
Thiago Custodio | Software Engineer
Blog
Twitter
Faça parte da Comunidade Windows Azure Brasil no Facebook -
pode me ajudar com isso ?
curl -X PUT 'https://api.text.com/ws-//rest/ordering/cart' -u user:pass -H 'Content-Type: application/json' -H 'Accept: application/json' --data-binary $'{"customerReference" : "Client #12345","description" : "Cart for client #12345"}'
não estou conseguindo passar os parâmetros customerReference e description
-
-
Como o Thiago comentou:
RestRequest request = new RestRequest("issues/{id}.xml", Method.PUT); request.AddParameter("id", ticket.id, ParameterType.UrlSegment); request.AddParameter("Parametro1", {SEU PARAMETRO}, ParameterType.UrlSegment); request.AddParameter("Parametro2", {SEU PARAMETRO2}, ParameterType.UrlSegment); request.XmlSerializer = new RedmineXmlSerializer(); request.AddBody(ticket); RestClient client = new RestClient(_baseUrl); client.Authenticator = new HttpBasicAuthenticator(_user, _password); IRestResponse response = client.Execute(request);
Att. Andre de Mattos Ferraz - www.iamferraz.com.br - http://mbsy.co/ldecrespigny/19022985
-
-
Vamo lá,
No RestRequest vc passa a sua URL:
RestRequest request = new RestRequest("{Coloca sua URL}", Method.PUT);
tiket.id é uma atributo qlq, somente um exemplo... Voce pode colocar qlq coisa ai:
request.AddParameter("Parametro1", {SEU PARAMETRO}, ParameterType.UrlSegment);
Att. Andre de Mattos Ferraz - www.iamferraz.com.br - http://mbsy.co/ldecrespigny/19022985
-
Amigo pode me ajudar e dizer aonde estou errando ?
RestRequest request = new RestRequest(Method.PUT);
request.AddParameter("customerReference","Client #12345" , ParameterType.UrlSegment);
request.AddParameter("description", "Cart for client #12345", ParameterType.UrlSegment);
request.AddBody(ticket);
RestClient client = new RestClient("https://api.voxbone.com/ws- voxbone/services/rest/ordering/cart");
client.Authenticator = new HttpBasicAuthenticator("login","senha");
IRestResponse response = client.Execute(request); -
what is ticket in this ?
and i am receiving error.. ""httpStatusCode":500,"apiModule":"ALL","genericErrorMessage":"An unexpected error occurred during the execution of your request. Please contact the ------support team"
do you have run this with success ? -
-
-
obrigado a todos.
ficou assim :
Metodo PUT : Se já existe ele altera se não ele cria.
string url= "";
string autorization = "login" + ":" + "senha";
byte[] binaryAuthorization = System.Text.Encoding.UTF8.GetBytes(autorization);
autorization = Convert.ToBase64String(binaryAuthorization);
autorization = "Basic " + autorization;
var client = new RestClient(url);
var request = new RestRequest(Method.PUT);
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", autorization);
request.AddParameter("application/json", "{\n \"description\":\"Regression testing\",\n \"customerReference\":\"Regression testing\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request); -