我们有一个第三者公开的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获取响应,但是在上有400个代码会引发异常httpWebRequest.GetResponse()
。当我们进入Postman时,它没有给我们预期的响应,但显示为400(错误请求),并带有默认错误消息,“远程服务器返回错误”。
我们想以邮递员的身份获取原始错误消息。有什么想法吗?
默认情况下,大多数异常都转换为状态码为500,内部服务器错误或请求请求为400的HTTP响应,这是非常痛苦的情况。您需要在catch块中捕获WebException。
试试看。
catch (WebException ex)
{
StreamReader sr = new StreamReader(ex.Response.GetResponseStream());
Console.WriteLine(sr.ReadToEnd());
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句