我正在使用HttpWebRequest
来对服务器进行一些调用。有时,这些调用会创建在try-catch
块中处理的异常。但是,异常的响应始终为null,我无法获取异常的状态代码。
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUrl);
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
StreamReader reader = new StreamReader(response.GetResponseStream());
}
}
catch (WebException e)
{
//e.Response is always null!
}
有什么办法可以获得WebException
回复吗?例如,如果我发送了错误的网址,WebException
将返回消息“基础连接已关闭:连接意外关闭。”。在Fiddler我会得到504 Status Code
加上一些短信。我说,如果Fiddler可以从错误的WebRequest获取状态代码结果,那么为什么C#不能?我知道必须有办法,但那是什么方式?
任何机构都知道如何获取状态代码?还是WebException
回复?
答案 0 :(得分:0)
如果出现像这样的错误,底层连接已关闭:连接意外关闭。“服务器没有发送任何数据 - 它只是关闭连接而不返回任何内容。
作为代理,Fiddler会检测到这种情况,并生成并返回错误,指示服务器无法响应。代理执行此操作以便客户端识别出服务器上的故障,而不是代理。