求教:用HttpWebRequest向谷歌提交搜索请求,大概提交32个左右就报错!
逍遥散人 2010-11-07 05:33:38 代码:
System.Net.HttpWebRequest r = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(url);
System.Net.CookieContainer c = new System.Net.CookieContainer();
r.CookieContainer = c;
r.KeepAlive = false;
r.ProtocolVersion = HttpVersion.Version10;
//创建请求
HttpWebResponse res = (HttpWebResponse)r.GetResponse();
Stream sr = res.GetResponseStream();
Encoding encode;
switch (res.CharacterSet.ToLower())
{
case "utf-8":
encode = System.Text.Encoding.GetEncoding("utf-8");
break;
case "gb2312":
encode = System.Text.Encoding.GetEncoding("gb2312");
break;
default:
encode = System.Text.Encoding.GetEncoding("gb2312"); //默认为中文
break;
}
StreamReader sr1 = new StreamReader(sr,encode);
content = sr1.ReadToEnd();
sr1.Close();
res.Close();
//Thread.Sleep(10000);
这段代码跑到32个左右时就报:
+ [System.Net.WebException] {"基础连接已经关闭: 接收时发生错误。"} System.Net.WebException
+ Data {System.Collections.ListDictionaryInternal} System.Collections.IDictionary {System.Collections.ListDictionaryInternal}
HelpLink null string
+ InnerException {"无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。"} System.Exception {System.IO.IOException}
Message "基础连接已经关闭: 接收时发生错误。" string
Source "System" string
StackTrace " 在 System.Net.HttpWebRequest.GetResponse()\r\n 在 SearchGoogle.Form1.Start_Search(String entname, String scanid, String pripid, Int32 search_status) 位置 G:\\Work\\SearchGoogle\\SearchGoogle\\Form1.cs:行号 163" string
+ TargetSite {System.Net.WebResponse GetResponse()} System.Reflection.MethodBase {System.Reflection.RuntimeMethodInfo}
咋弄啊,这两天就要提交代码了,临了出这种问题,急死人啊?
我试过用sleep,休息20秒也不管用啊!!
求教各位高手,有解决办法么?谢谢了