【发布时间】:2016-05-21 00:09:20
【问题描述】:
我有这个 Web API 函数,如果传入任何无效数据,我希望使用它来返回错误。我通过使用 Request.CreateResponse 函数来执行此操作,并将错误代码和错误列表传递给它。
public HttpResponseMessage Post([FromBody]Lead leadToCreate)
{
// Code to validate the request, and populate errorList which is a List<Error> goes here
if (errorList.Count > 0)
{
// Return list of errors and 304 code
return Request.CreateResponse(HttpStatusCode.NotModified, errorList);
}
else
{
//Validated successfully.
return Request.CreateResponse(HttpStatusCode.Created);
}
}
错误类是:
public class Error
{
public int number;
public string description;
public string url;
}
当我在 localhost 上使用 Fiddler 发出 POST 请求时,错误列表作为 JSON 响应的一部分输出(见最后一行):
HTTP/1.1 304 未修改
缓存控制:无缓存
编译指示:无缓存
内容类型:应用程序/json;字符集=utf-8
过期:-1
服务器:Microsoft-IIS/10.0
X-AspNet-版本:4.0.30319
X-SourceFiles: =?UTF-8?B?QzpcU291cmNlIENvZGVcV2ViXEZhc3R0cmFjayBBUElcRmFzdHRyYWNrIEFQSVxhcGlcc2FsZXNFbnF1aXJ5XDFc?=
X-Powered-By:ASP.NET
日期:格林威治标准时间 2016 年 2 月 10 日,星期三 14:49:20
[{"number":1,"description":"PrivateIndividual.Gender 必须有效。","url":""}]
我的问题是,在发布到我的实时服务器后,尽管使用了相同的请求数据,但没有输出错误列表,尽管返回了正确的响应代码:
HTTP/1.1 304 未修改
Cache-Control: no-cache Pragma: no-cache Content-Type: application/json;字符集=utf-8
过期:-1 服务器:Microsoft-IIS/7.0
X-AspNet-Version:4.0.30319 X-Powered-By:ASP.NET 日期:2 月 10 日,星期三
2016 14:52:13 GMT 连接:关闭 X-ScanSafe-Error: F284 Via:
HTTP/1.1 代理10012
谁能明白为什么这在 localhost 上可以正常工作,但在我的实时服务器上却不行?
【问题讨论】:
标签: c# json rest asp.net-web-api2 fiddler