做了一个程序,需要从网上抓取大量数据。长时间抓取数据的时候,会报“链接超时”。请问怎么解决?
string strResult = "";
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
//声明一个HttpWebRequest请求
request.Timeout = 30000;
//设置连接超时时间
request.Headers.Set("Pragma", "no-cache");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream streamReceive = response.GetResponseStream();
Encoding encoding = Encoding.GetEncoding("GB2312");
StreamReader streamReader = new StreamReader(streamReceive, encoding);
strResult = streamReader.ReadToEnd();
}
catch (Exception ex)
{
//MessageBox.Show("出错");
}以上是抓取的代码。
请问 request.Timeout = 30000;这个值对于超时是否起关键作用?
string strResult = "";
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
//声明一个HttpWebRequest请求
request.Timeout = 30000;
//设置连接超时时间
request.Headers.Set("Pragma", "no-cache");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream streamReceive = response.GetResponseStream();
Encoding encoding = Encoding.GetEncoding("GB2312");
StreamReader streamReader = new StreamReader(streamReceive, encoding);
strResult = streamReader.ReadToEnd();
}
catch (Exception ex)
{
//MessageBox.Show("出错");
}以上是抓取的代码。
请问 request.Timeout = 30000;这个值对于超时是否起关键作用?
解决方案 »
- 关于GridView确山删除行的索引溢出的问题
- (急)判断如果能登录用户如果在15分钟内没有任何操作。程序自动使用户退出登录状?
- 关于两套用户系统整合的问题
- 三层架构(存储过程),如何在DBHelper层中写查询语句?
- 服务器上没装office,但是程序里有个生成word文档的操作,有没有好点的解决方法
- xml有中文字段无法显示,盼解决一下
- 一个关于 DataGrid 中显示数据的问题
- 很菜的问题,vb.net的webform数据绑定无法在浏览器中显示,急盼复。
- 为什么二级域名处的缓存不能随主域名处的缓存更新?
- 怎么样把.aspx制作成安装的文件??
- StreamWriter报错,不能创建文件,搞了一天了,还是不行
- |zyciis| 关于事务完后跳转的问题:此 SqlTransaction 已完成;它再也无法使用
------------------------
起關鍵作用
timeout再大,总会被更大的数据搞爆,所以多线程下载应该要参考。
其原理,就是把response分成多段来读取,每段的长度都可以自己定,然后timeout就该比较好定了