HttpWebRequest的GetResponse()超时问题求解决

lzychina53770 2012-04-27 02:12:59
我需要将网页以文本形式解析,已知网址URI是正确可用的,用下面方法在一段时间后总是出现“操作超时”,似乎是HttpWebRequest的GetResponse()超时问题,我这设置req.Timeout = 600000还是出现这个问题,哪位高手帮忙解决一下看看问题出在哪?
public string GetHtml(string URI)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(URI);
req.Timeout = 600000;
WebResponse resp = req.GetResponse();
StreamReader sr = new StreamReader(resp.GetResponseStream(), Encoding.UTF8);
string fulltext = sr.ReadToEnd().Trim();
req.Abort();
resp.Close();
sr.Close();
return fulltext;
}
...全文
12557 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jasonliangbiz 2013-08-20
  • 打赏
  • 举报
回复
引用 7 楼 zdfzdfzdfz 的回复:
这个我遇到过,网络正常的情况下,一般是因为response使用后没有正常关闭造成的。 一般应该在finally块中调用response.close() 另外,应该在ServicePoint中设置大一点的 最大连接数
7楼正解
zdfzdfzdfz 2013-04-24
  • 打赏
  • 举报
回复
这个我遇到过,网络正常的情况下,一般是因为response使用后没有正常关闭造成的。 一般应该在finally块中调用response.close() 另外,应该在ServicePoint中设置大一点的 最大连接数
jk8855 2012-07-14
  • 打赏
  • 举报
回复
占个位,我也遇到同样的问题,我用浏览器能加载图片,getResponse就超时了,我试试楼上的方法看看行不行
lzychina53770 2012-05-02
  • 打赏
  • 举报
回复
感谢各位,本楼主自己将问题解决,方法主要有2点:1.在GetResponse()超时后要重新发送请求;2.检查是否异常,捕获或抛掉异常。

public string GetHtml(string URI)
{
string fullhtml=null;
while(true)
{
try
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(URI);
req.Method = "GET";
req.UserAgent = "Opera/9.25 (Windows NT 6.0; U; en)";
req.KeepAlive = true;
req.Timeout = 6000000;
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
if (resp.StatusCode != HttpStatusCode.OK) //如果服务器未响应,那么继续等待相应
continue;
StreamReader sr = new StreamReader(resp.GetResponseStream(), Encoding.UTF8);
fullhtml = sr.ReadToEnd().Trim();
resp.Close();
sr.Close();
break;
}
catch (WebException e)
{
e.StackTrace.ToString();
System.Diagnostics.Trace.WriteLine(e.Message);
if (true)
continue;
}
}
return fullhtml;
}

anzhiqiang_touzi 2012-04-27
  • 打赏
  • 举报
回复
你所在的服务器或者你的电脑不能打开你的url的网址
bdmh 2012-04-27
  • 打赏
  • 举报
回复
服务器超时,也许并非你自己超时
gnimgnot 2012-04-27
  • 打赏
  • 举报
回复
服务器有没有问题?

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧