Тайм-аут на HttpClient / HttpClientHandler с прокси - PullRequest
0 голосов
/ 24 сентября 2019

Я очищаю сайт, который требует использования сотен / тысяч прокси для его прохождения.У меня есть список из 20 000 прокси, но многие мертвы.Когда я сталкиваюсь с мертвым прокси, я отмечаю его и повторяю, используя другой, но часто время ожидания составляет около 15 секунд для мертвого прокси.

Я попытался установить свойство Timeout, но это только влияет на фактический HTTP-запрос ПОСЛЕ того, как он подключился к прокси-серверу.Несмотря на то, что я просмотрел десятки страниц, ни на одной из которых я не видел обработанного тайм-аута прокси, только запрос HttpClient.

Как мне настроить запрос, который ускоряет тайм-аут прокси, чтобы я мог перейти кследующий?

foreach(var proxy in proxies){
        var prox = new WebProxy($"{proxy.ip}:{proxy.port}");
        var clientHandler = new HttpClientHandler { Proxy = prox, UseProxy = true };
        var client = new HttpClient(clientHandler);
        try{
        var res = await client.GetStringAsync("http://example.com");
            //success, do something
            break;
        }catch{
            //failure, mark and try again
        }

}
...