我的HttpWebRequest有什么问题

时间:2011-11-14 22:02:38

标签: c# asp.net httpwebrequest httpwebresponse

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

如果我拨打404网址,我的代码就会出现异常。

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;       
      }

1 个答案:

答案 0 :(得分:3)

HttpWebRequest会针对不成功的回复状态抛出异常 这种行为是设计使然。

您可以通过抓取WebException并检查其Response属性来获取回复。