Usuário com melhor resposta
Enviar dados para o servidor WebApi REST

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
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
- Marcado como Resposta Robson William SilvaModerator terça-feira, 14 de março de 2017 12:12
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.
-
-
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
-
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
- Marcado como Resposta Robson William SilvaModerator terça-feira, 14 de março de 2017 12:12