Я хочу завершить httpwebrequest, когда он занимает слишком много времени в соединении. Вот примерный код, который я написал:
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. Я предполагаю, что соединение слишком медленное, что ответ URL мне немного данных в течение тайм-аута, скажем, например, получить 1байт за 5 секунд, так что это не истекает тайм-аут, но это очень долго. Как я могу прервать соединение? Спасибо:)