none
Enviar dados para o servidor WebApi REST RRS feed

  • Pergunta

  • Pessoal este código no inclui e não gera erro, o que pode estar de errado?

    var data = new Despesas {IdUser = 2, Tipo= "Arroz"};
                
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri("http://servido.com/");
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    
                    StringContent content = new StringContent(JsonConvert.SerializeObject(data), Encoding.UTF8, "application/json");
                    // HTTP POST
                    HttpResponseMessage response = await client.PostAsync("api/CD_Despesas/Incluir", content);
                    if (response.IsSuccessStatusCode)
                    {
                        string data2 = await response.Content.ReadAsStringAsync();
                       // product = JsonConvert.DeserializeObject<Product>(data);
                    }
                }

    WEbApi

    [HttpPost]
            [Route("Incluir")]
            public IHttpActionResult PostCD_Despesas(CD_Despesas cD_Despesas)
            {
                if (!ModelState.IsValid)
                {
                    return BadRequest(ModelState);
                }

                db.CD_Despesas.Add(cD_Despesas);
                db.SaveChanges();

                return CreatedAtRoute("DefaultApi", new { id = cD_Despesas.IdDespeda }, cD_Despesas);
            }


    Junior Santana

    domingo, 12 de março de 2017 19:22

Respostas

  • Pessoal, resolvi alterando os seguintes códigos:

     var client = new HttpClient();
                var postData = new List<KeyValuePair<string, string>>();
                postData.Add(new KeyValuePair<string, string>("IdUser", "1"));
                postData.Add(new KeyValuePair<string, string>("Tipo", "Oleo"));
                postData.Add(new KeyValuePair<string, string>("Valor", "8.50"));
                postData.Add(new KeyValuePair<string, string>("Data", "2017-03-14"));
                //postData.Add(new KeyValuePair<string, string>("Litros", "45"));
                //postData.Add(new KeyValuePair<string, string>("Odometro", "1000"));

                var content = new FormUrlEncodedContent(postData);

                var response = await client.PostAsync("http://aservidor/api/CD_Despesas/", content);

    WebApi

    Apenas retirei o  [Route("Incluir")]


    Junior Santana

    terça-feira, 14 de março de 2017 01:55

Todas as Respostas

  • Boa tarde Jr_inc,

    Obrigado pela participação no Fórum MSDN.

    Ao tentar debugar, há algo que indique onde está o problema?

    Atenciosamente,


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 13 de março de 2017 17:20
    Moderador
  • Ele para nesta linha

     HttpResponseMessage response = await client.PostAsync("api/CD_Despesas/Incluir", content);

    e gera esta imagem


    Junior Santana

    segunda-feira, 13 de março de 2017 17:41
  • Consegui este erro

    {StatusCode: 405, ReasonPhrase: 'Method Not Allowed', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
    {
    Cache-Control: no-cache
    Pragma: no-cache
    Server: Microsoft-IIS/8.5
    X-AspNet-Version: 4.0.30319
    Date: Mon, 13 Mar 2017 17:47:53 GMT
    Allow: GET
    Content-Type: application/json; charset=utf-8
    Expires: -1
    Content-Length: 73
    }}


    Junior Santana

    segunda-feira, 13 de março de 2017 17:49
  • Pessoal, resolvi alterando os seguintes códigos:

     var client = new HttpClient();
                var postData = new List<KeyValuePair<string, string>>();
                postData.Add(new KeyValuePair<string, string>("IdUser", "1"));
                postData.Add(new KeyValuePair<string, string>("Tipo", "Oleo"));
                postData.Add(new KeyValuePair<string, string>("Valor", "8.50"));
                postData.Add(new KeyValuePair<string, string>("Data", "2017-03-14"));
                //postData.Add(new KeyValuePair<string, string>("Litros", "45"));
                //postData.Add(new KeyValuePair<string, string>("Odometro", "1000"));

                var content = new FormUrlEncodedContent(postData);

                var response = await client.PostAsync("http://aservidor/api/CD_Despesas/", content);

    WebApi

    Apenas retirei o  [Route("Incluir")]


    Junior Santana

    terça-feira, 14 de março de 2017 01:55