[英]What's wrong with my HttpWebRequest
I dont know what are missing in my code. 我不知道我的代码中缺少什么。
If I call an 404 url my code get an exception. 如果我拨打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();
I get an exception on req.GetResponse() 我在req.GetResponse()上得到一个例外
There is the error i get back 我得到了错误
The remote server returned an error: (404) Not Found. 远程服务器返回错误:(404)Not Found。
I am not suppose to received HttpStatusCode.NotFound ? 我不应该收到HttpStatusCode.NotFound吗?
The solution : 解决方案 :
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;
}
HttpWebRequest
throws an exception on non-successful response statuses. HttpWebRequest
在非成功的响应状态上抛出异常。
This behavior is by design. 此行为是设计使然。
You can get the response by catching a WebException
and checking its Response
property. 您可以通过捕获WebException
并检查其Response
属性来获取Response
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.