11

我在控制台应用程序中有这段代码,它在循环中运行

 try
 {
      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(search);
      request.Headers.Add("Accept-Language", "de-DE");
      request.Method = "GET";
      request.Accept = "text/html";
      using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
      {
           using (StreamReader reader = new StreamReader(response.GetResponseStream(),
                    Encoding.ASCII))
           {
                string html = reader.ReadToEnd();
                    FindForMatch(html, url);
           }
      }
 }
 catch (Exception ex)
 {
      throw new Exception(ex.Message);
 }

几个循环后它给出

无法从传输连接读取数据:连接已关闭

错误。知道为什么会这样吗?谢谢。。

4

3 回答 3

25

添加后

request.KeepAlive = false;
request.ProtocolVersion = HttpVersion.Version10; 

它工作正常..

我在这篇博文中找到了它

WebRequest 和无法从传输连接读取数据错误

于 2012-07-04T09:31:17.430 回答
0

我刚刚尝试了代码,循环 10 次以加载 google.com,它对我有用。有什么特别之处吗search- 也许尝试用另一个 uri 替换它。我没有包括findForMatch- 我认为它没有做任何会导致异常的事情。

于 2012-07-04T06:42:26.103 回答
-5

尝试将阅读器放置在 try catch 的 finally 块中

于 2012-07-04T06:42:49.897 回答