0

我正在使用HttpWebRequest对服务器进行一些调用。有时这些调用会创建在try-catch块中处理的异常。但是,异常的响应始终为空,我无法获取异常的状态码。

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回复吗?例如,如果我发送了错误的 URL,WebException将返回消息“底层连接已关闭:连接已意外关闭。 ”。在 Fiddler 中,我会收到504 Status Code一些短信。我说,如果 Fiddler 可以从错误的 WebRequest 中获取状态码结果,那为什么 C# 不能呢?我知道一定有办法,但那是什么?

任何机构都知道如何获取状态码?或WebException回应?

4

1 回答 1

0

如果出现像底层连接已关闭:连接意外关闭。”这样的错误,服务器没有发回任何数据——它只是关闭了连接,没有返回任何内容。

作为代理,Fiddler 检测到这种情况,并生成并返回一个错误,表明服务器响应失败。代理这样做是为了让客户端识别故障发生在服务器上而不是代理上。

于 2013-10-28T15:58:53.453 回答