我有这个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);
}
}
Error类是:
public class Error
{
public int number;
public string description;
public string url;
}
当我在localhost上使用Fiddler发出POST请求时,错误列表将作为JSON响应的一部分输出(请参阅最后一行):
HTTP / 1.1 304未修改
缓存控制:无缓存
Pragma:no-cache
Content-Type:application / json;字符集= UTF-8
过期:-1
服务器:Microsoft-IIS / 10.0
X-AspNet-Version:4.0.30319
X-SourceFiles:=?UTF-8?B?QzpcU291cmNlIENvZGVcV2ViXEZhc3R0cmFjayBBUElcRmFzdHRyYWNrIEFQSVxhcGlcc2FsZXNFbnF1aXJ5XDFc?=
X-Powered-By:ASP.NET
日期:2016年2月10日星期三14:49:20 GMT
[{“number”:1,“description”:“PrivateIndividual.Gender必须有效。”,“url”:“”}}
我的问题是,在发布到我的实时服务器之后,尽管使用了相同的请求数据,但不会输出错误列表,尽管返回了正确的响应代码:
HTTP / 1.1 304未修改
Cache-Control:no-cache Pragma:no-cache Content-Type:application / json; charset = 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 proxy10012
任何人都可以看到为什么这可能在localhost上工作正常,但不是我的实时服务器?
答案 0 :(得分:2)
看起来应用程序层代理有响应问题:
2016 14:52:13 GMT Connection: close X-ScanSafe-Error: F284 Via:
HTTP/1.1 proxy10012
看起来这个代理阻止了HttpResponse回到小提琴手。