MVC Web API POST请求无法从客户端应用程序工作,但使用chrome Postman扩展

时间:2013-07-19 06:50:39

标签: asp.net-mvc-4 asp.net-web-api wcf-web-api asp.net-web-api-routing

我有一个带控制器的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 请求来自邮递员工具(chrome Rest服务测试人员网址)以及客户端(请参阅下文) 。使用Postman工具, POST 请求可以正常工作。但是,当我从客户端尝试相同的代码时,我收到以下错误 &#34; StatusCode:404,ReasonPhrase:&#39;找不到&#39; &#34;。

客户端代码:

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中起作用。

请帮助我。

0 个答案:

没有答案