HttpWebRequest编程相关问题(3)

在"HttpWebRequest编程相关问题(2)"中为了获取到500错误时对于GetResponse使用了try catch方法,代码如下:

try
...
... {
oResponse
=(HttpWebResponse)oRequest.GetResponse();
}

catch (WebExceptionex)
...
... {
oResponse
=(HttpWebResponse)ex.Response;
}

但是这种异常处理还是有遗漏,就是当httpwebrequest访问某个网站时,对方网站长时间没有响应或者timeout,

这种timeout产生时,上面代码中的oRequest.GetResponse()返回的对象是NULL

所以还需要进一步调整为:

try
... {
oResponse
=(HttpWebResponse)oRequest.GetResponse();
}

catch (WebExceptionex)
... {
if(ex.Response!=null)
...{
oResponse
=(HttpWebResponse)ex.Response;
}

else
...{
throwex;
}

}

虽然不是什么大问题,但是遇到了就比较讨厌。

另,为了主动timeout,还需要对于request对象设置timeout的数值

你可能感兴趣的:(request)