[英]how to disable 400 Bad request's message body in Asp.Net Core web API in production environment?
[英]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"
}
我们尝试使用HttpWebResponse
或WebResponse
从 API 获取响应,但它在httpWebRequest.GetResponse()
上抛出了带有 400 代码的异常。 它没有像我们在 Postman 中得到的那样给我们预期的响应,但它说 400(错误请求)和默认错误消息,“远程服务器返回错误”。
我们希望以邮递员的身份获取原始错误消息。 有什么想法吗?
默认情况下,大多数异常被转换为状态代码为 500、内部服务器错误或 400 错误请求的 HTTP 响应,这是非常痛苦的情况。 您需要在 catch 块中捕获 WebException。
试一试。
catch (WebException ex)
{
StreamReader sr = new StreamReader(ex.Response.GetResponseStream());
Console.WriteLine(sr.ReadToEnd());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.