使用application / json标头调用Web API Post时没有响应

时间:2014-02-24 18:26:18

标签: asp.net-web-api

我有一个非常简单的WebAPI控制器(所有系统默认值),当我发布帖子时,它有Content-Type:application / json的事实使得帖子(来自fiddler)挂起(不返回)

我的标题如下:

Content-Length: 2
Content-Type: application/json

并且帖子正文就是

[]

我的WebAPI控制器看起来像这样:

namespace WebAPI.rest
{
public class SendGridController : ApiController
{

    public HttpResponseMessage Post()
    {
        try
        {
            HttpContent requestContent = Request.Content;
            string json = requestContent.ReadAsStringAsync().Result.Trim();
        }
        catch (Exception ex)
        {
            throw ex;
        }

        return new HttpResponseMessage(HttpStatusCode.OK);

    }

当我向http://respondto.it/发出相同的帖子(使用fiddler)时,它返回没有问题

2 个答案:

答案 0 :(得分:1)

如果您在ASP.NET下运行,.Result可能不是一个明智的想法。我在自托管下运行你的代码并且运行正常。

试试这个,

public class SendGridController : ApiController
{

public async Task<HttpResponseMessage> Post()
{
    try
    {
        HttpContent requestContent = Request.Content;
        string json = await requestContent.ReadAsStringAsync();
    }
    catch (Exception ex)
    {
        throw ex;
    }

    return new HttpResponseMessage(HttpStatusCode.OK);

}

}

答案 1 :(得分:1)

问题原来是webapi的旧版本。一旦我更新到webapi2,问题就消失了。