nolu olmak üzere sona eriyor HttpClient kullanarak bir Web API'sine POST yapmaya çalışıyorum. Web API'sinin Kaydetme yönteminde bir kesme noktası koyduğumda [FromBody] Ürünü boş. Bu, ürünü Web API'sine gönderdiğim yolla ilgili bir sorun olduğu anlamına gelir. Birisi aşağıdaki kodu inceleyebilir ve nerede yanlış gidebileceğimi görebilir. Başlıkları ve içerik türleriyle ilgili bir şey olduğunu varsayarak düşünüyorum.HttpClient ve Web API yöntemini kullanarak bir Web API'sine gönderme [FromBody] parametresi,
ürün geçmesi gerekir web API bir istemci deposundanSONRASI arama JSON ile nesne:
public async Task<Product> SaveProduct(Product product)
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://localhost:99999/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
StringContent content = new StringContent(JsonConvert.SerializeObject(product));
// HTTP POST
HttpResponseMessage response = await client.PostAsync("api/products/save", content);
if (response.IsSuccessStatusCode)
{
string data = await response.Content.ReadAsStringAsync();
product = JsonConvert.DeserializeObject<Product>(data);
}
}
return product;
}
Web API Kontrol: Yöntem
[HttpPost]
[Route("save")]
public IActionResult Save([FromBody]Product product)
{
if (customer == null)
{
return HttpBadRequest();
}
_manager.SaveCustomer(product);
return CreatedAtRoute("Get", new { controller = "Product", id = product.Id }, product);
}
[FromBody] Ürün ürün parametresi null olarak biter.
Ben kullanarak deyimi bakın https://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/ içinde HttpClient sarma DEĞİL öneriyoruz – Xander