none
Consumir uma API para criar um carrinho asp.net RRS feed

  • 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
    terça-feira, 8 de dezembro de 2015 12:03

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

    terça-feira, 8 de dezembro de 2015 15:28
  • 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

    terça-feira, 8 de dezembro de 2015 17:22
  • alguém ?
    quarta-feira, 9 de dezembro de 2015 11:57
  • 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

    quarta-feira, 9 de dezembro de 2015 13:35
  • André uma coisa que eu ainda não entendi é o motivo de ter que passar 

    ("issues/{id}.xml"); request.AddParameter("id", ticket.id, ParameterType.UrlSegment);

    pode me explicar o motivo desse ticket.id e esse issues ?

      

    sexta-feira, 11 de dezembro de 2015 13:06
  • 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

    sexta-feira, 11 de dezembro de 2015 13:59
  •    

    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);

                                     
    terça-feira, 15 de dezembro de 2015 20:52
  • 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 ?
    quarta-feira, 16 de dezembro de 2015 08:33
  • yes man , i am with problem to create a car , help ?
    quarta-feira, 16 de dezembro de 2015 11:59
  • Jeff,

    Remove ticket... foi somente um exemplo...


    Att. Andre de Mattos Ferraz - www.iamferraz.com.br - http://mbsy.co/ldecrespigny/19022985

    quarta-feira, 16 de dezembro de 2015 15:17
  • 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);

    quinta-feira, 17 de dezembro de 2015 11:25
  • thanks a lot ..... 
    sexta-feira, 18 de dezembro de 2015 07:49