Webrequest получает больше, чем все тайм-ауты вместе, чтобы завершить - PullRequest
0 голосов
/ 21 мая 2019

Я написал этот метод для тестирования некоторых URL-адресов с некоторыми прокси-серверами, однако, хотя я установил все известные мне свойства тайм-аута на 20 секунд, иногда для их завершения требуется от 3 до 4 минут.

private bool TestUrl(string url, WebProxy webProxy, string userAgent)
{
    try
    {
        var request = (HttpWebRequest)WebRequest.Create(url);
        request.Method = "GET";
        request.Timeout = 20 * 1000;
        request.ReadWriteTimeout = 20 * 1000;
        request.ContinueTimeout = 20 * 1000;
        request.Accept = "*";
        request.UserAgent = userAgent;
        request.Proxy = webProxy;
        using (var response = (HttpWebResponse)request.GetResponse())
        {
            if (response.StatusCode != HttpStatusCode.OK)
            {
                return false;
            }
        }
        return true;
    }
    catch (Exception ex)
    {
        Log.Test(ex.ToString());
        return false;
    }
}

Iожидайте от 20 до 60 секунд, чтобы увидеть результат, но для некоторых прокси, которые я использую, требуется от 3 до 4 минут.

...