繁体   English   中英

400 错误请求 | 从 ASP.NET Web API 接收自定义错误消息或模型

[英]400 Bad Request | Receive custom error message or model from ASP.NET Web API

我们有一个由 3rd 方公开的 Web API,我们没有任何控制权。 看起来他们在抛出 400 ( Bad Request ) 时包装了自定义错误消息模型。

使用 Postman 时我们得到自定义错误消息模型

{
    "Message": "Site Name Exists",
    "ErrorId": "<some-guid>",
    "ErrorCode": 400,
    "GeneratedTime": "<some-datatime>",
    "RequestedUri": "origin-api-uri"
} 

我们尝试使用HttpWebResponseWebResponse从 API 获取响应,但它在httpWebRequest.GetResponse()上抛出了带有 400 代码的异常。 它没有像我们在 Postman 中得到的那样给我们预期的响应,但它说 400(错误请求)和默认错误消息,“远程服务器返回错误”。

我们希望以邮递员的身份获取原始错误消息。 有什么想法吗?

默认情况下,大多数异常被转换为状态代码为 500、内部服务器错误或 400 错误请求的 HTTP 响应,这是非常痛苦的情况。 您需要在 catch 块中捕获 WebException。

请参阅: ASP.NET Web API 中的异常处理

试一试。

 catch (WebException ex)
        {
            StreamReader sr = new StreamReader(ex.Response.GetResponseStream());
            Console.WriteLine(sr.ReadToEnd());
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM