我不知道我的代码中缺少什么。
如果我拨打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;
}
答案 0 :(得分:3)
HttpWebRequest
会针对不成功的回复状态抛出异常
这种行为是设计使然。
您可以通过抓取WebException
并检查其Response
属性来获取回复。