2013-06-04 362 views
0

当我试图让HTML页面我得到这个错误:“的基础连接已关闭:连接被意外关闭”

The underlying connection was closed: The connection was closed unexpectedly 

我想我得到了现场,正在使用基于一些保护IP。

WebClient single_page_client = new WebClient(); 
single_page_client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705;)"); 
string cat_page_single = single_page_client.DownloadString(the_url); 

我该怎么做? 与Webclient一起使用代理服务器怎么样?

编辑

如果我用这个代码,它的工作原理。为什么?

HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create(current_url); 
webrequest.KeepAlive = true; 
webrequest.Method = "GET"; 
webrequest.ContentType = "text/html"; 
webrequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; 
//webrequest.Connection = "keep-alive"; 
webrequest.Host = "cat.sabresonicweb.com"; 
webrequest.Headers.Add("Accept-Language", "en-US,en;q=0.5"); 
webrequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:18.0) Gecko/20100101 Firefox/18.0"; 

HttpWebResponse webresponse = (HttpWebResponse)webrequest.GetResponse(); 

Console.Write(webresponse.StatusCode); 
Stream receiveStream = webresponse.GetResponseStream(); 


Encoding enc = System.Text.Encoding.GetEncoding(1252);//1252 
StreamReader loResponseStream = new StreamReader(receiveStream, enc); 

string current_page = loResponseStream.ReadToEnd(); 

loResponseStream.Close(); 
webresponse.Close(); 

回答

0

第一个请求不使用表示结果长度的头。它完成时关闭连接。

第二个请求使用长度标题,读取指定的字节数,然后优雅地关闭连接。 (客户端控制,而不是服务器断开驱动下)

- 或 -

你发送的URL在服务器上导致了错误。服务器日志或事件查看器中是否有错误?

+0

不,我在服务器日志或事件查看器中看不到任何错误。正如我写的,它与HttpWebRequest一起工作。我认为应该是第一个。谢谢 – aquanat

相关问题