2

次のように、コントローラーを備えた Web API サービスがあります。

RoutePrefix("api/Product")]
public class ProductController : ApiController
{
    [HttpPost]
    [POST("InsertProduct")]
    public HttpResponseMessage InsertProduct(ProductDetail product)
    {
        //logic
    }

    [HttpGet]
    [GET("Item/{itemId}/{itemtypeid}")]
    public List<ProductDetail> GetProduct(int itemId, long itemtypeid)
    {
    //logic
        return response;
    }
}

ここで、GET要求は、Postman ツール(chrome Rest サービス テスター URL) とクライアント(以下を参照) の両方から機能しています。POST要求は、Postman ツールで正常に機能します。しかし、クライアントから同じコードを試すと、「StatusCode: 404, ReasonPhrase: 'Not Found'」というエラーが表示されます。

クライアントコード:

HttpClient client = new HttpClient();
        client.BaseAddress = new Uri("http://localhost/ProductService/");
        client.DefaultRequestHeaders.Accept.Add(
            new MediaTypeWithQualityHeaderValue("application/json"));

        string serializedContent = JsonConvert.SerializeObject(new ProductDetail());
        StringContent stringContent = new System.Net.Http.StringContent(serializedContent, Encoding.UTF8, "application/json");

        HttpResponseMessage response = client.PostAsJsonAsync<ProductDetail>("api/Product/InsertProduct", new ProductDetail()).Result;

同じリクエストが外部ツールからはどのように機能しますが、httpclient からは機能しませんか。

これで私を助けてください。

4

0 に答える 0