none
Passando parametros no Post RRS feed

  • Pergunta

  • Estou chamando uma api e passando um key/value no post.
    No entanto esta me retornando bad request por causa do parametro.
    Este parametro tem q estar no body. FormUrlEncodedContent colocara o parametro no body ?

    O que pode estar errado ?

    var encodedKey = Encoding.ASCII.GetBytes(chave);
                using (var client = new HttpClient())
                {
                    //AUTENTICACAO
                    client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(chave));

                    var url = $"https://www.meusite.com/api/control/" + controlId + "/task";
                    var uri = new Uri(url);

                    var parameters = new Dictionary<string, string> { { "name", "valor" } };
                    var encodedContent = new FormUrlEncodedContent(parameters);

                    var response = await client.PostAsync(url, encodedContent);
                    string json;
                    using (var content = response.Content)
                    {
                        json = await content.ReadAsStringAsync();
                    }

                    var result = JsonConvert.DeserializeObject<Sx>(json);
                    return result;
                }

            }

    Abracos

    terça-feira, 20 de agosto de 2019 16:21

Todas as Respostas

  • Amigo,

    Tente utilizar o WEBCLIENT, abaixo um exemplo baseado no seu codigo:

                    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
                    using (var wc = new WebClient() { Encoding = Encoding.UTF8 })
                    {
                        wc.Headers.Add("User-Agent", "Mozilla/5.0 (compatible; Rigor/1.0.0; http://rigor.com)");
                        wc.Headers.Add("Content-Type", "application/json");
                        wc.Headers.Add("Accept", "*/*");
                        wc.Headers.Add("Authorization", string.Concat("Basic ", Convert.ToBase64String("sua chave")));
                        var Uri = new Uri(string.Concat("https://www.meusite.com/api/control/", controlId ,"/task"));

                        var parameters = new Dictionary<string, string> { { "name", "valor" } };

                        var jsonRetorno = wc.UploadString(Uri, "POST ou PUT", JsonConvert.SerializeObject(parameters));
                    }

    quarta-feira, 21 de agosto de 2019 16:16
  • Boa tarde,

    Transforme o body em json.

     var parameters = new Dictionary<string, string> { { "name", "valor" } };

     var jsonRequest = JsonConvert.SerializeObject(parameters);
     var encodedContent = new StringContent(jsonRequest, Encoding.UTF8, "application/json");


    Espero ter ajudado --------------------. Att; Danilo Dumba


    • Editado Danilo Dumba quarta-feira, 21 de agosto de 2019 19:19
    quarta-feira, 21 de agosto de 2019 19:18