【发布时间】:2016-02-06 20:08:50
【问题描述】:
我在 MVC 6 WebAPI 中调用 api 端点:
POST http://localhost:57287/mytestapi/testentity/ HTTP/1.1
Accept: application/json
X-APIKey: 00000000-0000-0000-0000-000000000000
Content-Type: application/json; charset=utf-8
Host: localhost:57287
Content-Length: 1837
Expect: 100-continue
Connection: Keep-Alive
在正文中,我有 json 序列化的测试实体。
我的实体控制器代码中有一个错误,api 返回 500 响应“服务器错误”我知道错误是什么,将修复它,但是我需要帮助的问题是 API 返回 HTML而不是 json 序列化异常对象 - Json 是我所期望的:它是旧 webapi 将返回的内容。我已经从一个我知道有效的旧测试项目中移植了代码。
那么为什么 MVC 6 WebAPI 返回的是 html 而不是 json?我需要做一些配置吗?
编辑: 我按照@danludwig 的建议将 Accept: application/json 添加到标题中,但这并没有解决问题,我仍然得到一个 html 错误页面。
我查看了我的 StartUp.cs 并发现:
if (env.IsDevelopment())
{
//app.UseBrowserLink();
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
在 ConfigureApp 方法中。我用 app.UseDeveloperExceptionPage(); 进行了测试注释掉了。这阻止了 api 响应正文中 html 错误页面的返回,但是我仍然没有得到 json 序列化的异常对象。
【问题讨论】:
-
Accept: application/json -
很遗憾没有。我已经编辑了问题以显示新的标题,不过谢谢。
-
JsonOutputFormatter是否有可能被您的代码删除? -
不,我在对我的测试控制器获取端点的有效调用中返回 json。只是不用于错误消息。
标签: asp.net-web-api asp.net-core-mvc