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

google.com をロードするために 10 回ループしてコードを試してみたところ、うまくいきました。何か特別なことがありますかsearch- おそらく別の uri に置き換えてみてください。含めませんでしたfindForMatch-例外を引き起こすようなことは何もしていないと思います。

于 2012-07-04T06:42:26.103 に答える
-5

try catch の finally ブロックでリーダーを破棄してみてください

于 2012-07-04T06:42:49.897 に答える