【问题标题】:Web API - Return JSON object along with the HTTP StatusWeb API - 返回 JSON 对象以及 HTTP 状态
【发布时间】: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


    【解决方案1】:

    看起来有一个应用层代理的响应有问题:​​

    2016 14:52:13 GMT Connection: close X-ScanSafe-Error: F284 Via:
    
    HTTP/1.1 proxy10012
    

    而且看起来这个代理正在阻止 HttpResponse 返回 fiddler。

    【讨论】:

    • 谢谢!我注销了办公室的网络,将手机用作热点,然后再次尝试请求,它运行良好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    • 2022-02-09
    • 1970-01-01
    • 2015-08-27
    • 2016-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多