웹 API 컨트롤러에 C# 개체를 전달하려고합니다. API는 게시 된 Product 유형의 객체를 저장하도록 구성됩니다. 나는 Jquery Ajax 메서드를 사용하여 객체를 성공적으로 추가했으며 이제는 C#에서 동일한 결과를 얻으려고합니다.webapi 컨트롤러에 C# 개체 보내기
가 postproduct 메소드가 호출되지 않습니다public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public string Category { get; set; }
public decimal Price { get; set; }
}
static void Main(string[] args)
{
string apiUrl = @"http://localhost:3393/api/products";
var client = new HttpClient();
client.PostAsJsonAsync<Product>(apiUrl, new Product() { Id = 2, Name = "Jeans", Price = 200, Category = "Clothing" });
}
, 어떻게 컨트롤러에이 개체를 보낼 :
나는 API에 POST 요청을 보낼 수있는 간단한 콘솔 응용 프로그램을 만들었습니다? 항목을 추가하는 데 사용
방법 : 당신은 어떻게 든 포스팅 형식으로 JSON을 허용하지 않도록 설정 한 같은
public HttpResponseMessage PostProduct([FromBody]Product item)
{
item = repository.Add(item);
var response = Request.CreateResponse<Product>(HttpStatusCode.Created, item);
string uri = Url.Link("DefaultApi", new { id = item.Id });
response.Headers.Location = new Uri(uri);
return response;
}
코드가 좋을 것 같습니다. 피들러에서 무엇을 볼 수 있습니까? 서버에서 webapi 추적을 활성화 했습니까? –
HttpClient에서 보낸 요청을 사용하지 않는 양식에서 비롯된 요청을 Fiddler에서 볼 수 있습니다. 또한 api를 http://producttestapi.azurewebsites.net/api/products에 업로드했지만 HttpClient의 요청 중 해당 API에 도달하지 못했습니다. – neo112
또한 해당 URL의 index.html을 확인하십시오. 아약스를 통해 객체를 보내는 데 사용하는 양식이 해당 API가 작동하도록 작동합니다. – neo112