接続に時間がかかりすぎると、httpwebrequestを終了します。ここで は私が書いたばかりsimapleコードです:C#でHttpWebRequest Connectionを終了する方法?タイムアウトまたはリードライトタイムアウトを設定しても動作しません。
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
request.Timeout = 5000;
request.ReadWriteTimeout = 5000;
request.Proxy = new WebProxy("http://" + proxyUsed + "/", true);
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.01; Windows NT 5.0)";
using (WebResponse myResponse = request.GetResponse())
{
using (Stream s = myResponse.GetResponseStream())
{
s.ReadTimeout = 5000;
s.WriteTimeout = 5000;
using (StreamReader sr = new StreamReader(s, System.Text.Encoding.UTF8))
{
result = sr.ReadToEnd();
httpLink = myResponse.ResponseUri.AbsoluteUri;
sr.Close();
}
s.Close();
}
myResponse.Close();
}
しかし、時々接続が応答を取得するのに約15分かかります。 状況は15分後で、私はまだ応答を得ることができますが、URLの完全なソースコードは取得できません。 私は接続が遅すぎると思うので、タイムアウト内の少しのデータが返ってきます。ちょうど例えば5秒で1バイトを受け取ると言うので、timoueは期限切れになりませんが、非常に長くなります。 どうすれば接続を終了できますか? ありがとう:)