赞
踩
代码不重要,看字:
此次遇到507错误的主要原因是:访问速度过快;
也可能有 请求头信息不全 的部分原因;
下面这个是我写的一个函数:
//得到远程页面内容
private string GetHttpPage(string url)
{
try
{
WebResponse response = null;
Stream resStream = null;
StreamReader sr = null;
WebRequest request = WebRequest.Create(url);
request.Timeout = 10000;//超时时间:10秒
try
{
response = request.GetResponse();
resStream = response.GetResponseStream();
sr = new StreamReader(resStream, System.Text.Encoding.GetEncoding("GB2312"));
return sr.ReadToEnd();
}
catch (System.Net.WebException e1)
{
return "";
}
catch (Exception e2)
{
return "";
}
finally
{
try
{
if (response != null)
{
response.Close();
response = null;
}
if (resStream != null)
{
resStream.Close();
resStream = null;
}
sr = null;
}
catch { }
}
}
catch (Exception e3)
{
return "";
}
}
在一个循环里连续调用,当调用到300次以后时,就都出错了,都是下面的错误信息:
System.Net.WebException: 远程服务器返回错误: (507) Insufficient Storage。 在 System.Net.HttpWebRequest.GetResponse() 在 GetHttpPage(String url)请问,是什么原因导致这个问题出现?要如何避免这个错误?net网络web
在一个循环里连续调用,当调用到300次以后时,就都出错了,都是下面的错误信息:
循环太多了,是机器都吃不消的。多用using。
@guwei4037:这个和using有什么关系?是服务器返回的报错
request.Timeout = 10000;//超时时间:10秒
把这个改为长一些 request.Timeout = 20000;//超时时间:20秒
试试看
淘宝Open API每分钟访问的次数限制400次,5000次/天,估计直接爬页面也有这样的限制。
http://open.taobao.com/support/question_detail.htm?id=412
那你还纠结什么,每次请求中间sleep一小段试试,1分钟不要超过300次。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。