我有一个非常简单的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)时,它返回没有问题
答案 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,问题就消失了。