我正在尝试改进为响应应用程序中处理的错误而提供的信息.
这是代码:
Try
httpRequestObj = HttpWebRequest.Create(strRequest)
httpRequestObj.Method = "GET"
httpRequestObj.UseDefaultCredentials = True
* httpResponse = httpRequestObj.GetResponse
Using reader As StreamReader = New StreamReader(httpResponse.GetResponseStream())
strXML = reader.ReadToEnd()
End Using
Catch ex As WebException
'do something with ex
End Try
Run Code Online (Sandbox Code Playgroud)
webexception抛出在*行上
目前,我在Exception中看到的是"远程服务器返回错误:(500)内部服务器错误".我在调试中查看了异常,但我需要的信息不存在 - 我想应该读入响应以查看该信息,但它永远不会那么远.
如果我接受请求并将其直接粘贴到我的浏览器中,我可以看到从我正在调用的API返回的XML格式的错误详细信息,如下所示:
<Error>
<description>info I want to get to here</description>
<detail />
<code>info I want to get to here</code>
<source />
<category>info I want to get to here</category>
<file>info I want to get to here</file>
<line>info I want to get to here</line>
<pad />
</Error>
Run Code Online (Sandbox Code Playgroud)
有没有什么方法可以更改此代码,以便我可以通过500错误并查看实际响应,我希望能够解析此xml以找出失败的真正问题.
注意:Exception确实有一个ex.Response(System.Net.HttpWebResponse),但我看不到我需要的信息,只有一堆Header信息.
fer*_*oze 18
您可以从异常中获取错误响应....
try
{
....
} catch(Exception e) {
if (e is WebException && ((WebException)e).Status==WebExceptionStatus.ProtocolError)
{
WebResponse errResp = ((WebException)e).Response;
using(Stream respStream = errResp.GetResponseStream())
{
// read the error response
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
28962 次 |
最近记录: |