【问题标题】:What's wrong with my HttpWebRequest我的 HttpWebRequest 有什么问题
【发布时间】:2011-12-29 01:15:44
【问题描述】:

我不知道我的代码中缺少什么。

如果我调用 404 url​​,我的代码会出现异常。

HttpWebRequest req = WebRequest.Create(args.Url) as HttpWebRequest;
req.AllowAutoRedirect = true;
req.Timeout = args.TimeOut;
req.UserAgent = args.UserAgent;   
HttpWebResponse answer = req.GetResponse() as HttpWebResponse;
objResult.Status =answer.StatusCode;
Stream stream = answer.GetResponseStream();

我在 req.GetResponse() 上遇到异常

有错误我回来了

远程服务器返回错误:(404) Not Found.

我不认为收到 HttpStatusCode.NotFound ?

解决办法:

try
      {
        HttpWebRequest req = WebRequest.Create(args.Url) as HttpWebRequest;
        req.AllowAutoRedirect = true;
        req.Timeout = args.TimeOut;
        req.UserAgent = args.UserAgent;       
        HttpWebResponse answer = req.GetResponse() as HttpWebResponse;

        objResult.Status =answer.StatusCode;       
      }
      catch (WebException ex)
      {
        HttpWebResponse response = ex.Response as HttpWebResponse;
        objResult.Status = response.StatusCode;       
      }

【问题讨论】:

标签: c# asp.net httpwebrequest httpwebresponse


【解决方案1】:

HttpWebRequest 在不成功的响应状态下引发异常。
此行为是设计使然。

您可以通过捕获WebException 并检查其Response 属性来获得响应。

【讨论】:

  • 好的,它的工作谢谢。有了 Alaudo 的回答,我只需要将 WebException.Response 转换为 HttpWebResponse
猜你喜欢
  • 2021-11-23
  • 1970-01-01
  • 2015-06-06
  • 2012-09-10
  • 2013-06-29
  • 2016-02-03
  • 2011-06-15
  • 2014-11-04
  • 2015-10-15
相关资源
最近更新 更多