ну это всегда надо делать, прокся и платная может быть мертвой
просто это я к чему все. Я видел у конфигурации IHttpClientFactory какие то настройки политик переподключения. Но это наверное явно не входит в мой алгоритм смены прокси сервера при каждом запросе в ProxyHttpHandler
я у себя обычно делаю коллекцию кольцевую с проксями, при запросе ловлю фейлы коннекта, чекаю че за там траблы, если надо удаляю мертвую проксю и сразу беру другую пока не достигну ретрайлимита или проксей не останется
@thatisbad , знаешь что теперь интересно. Я использую бесплатные прокси. И через некоторые из списка, запросы не проходят к ресурсах.
Тоесть может кинуть исключение, что мол долгое слишком ожидание ответа. Вот тут бы какую нибудь RetryPolicy с изменением прокси сервера сделать
На коленке делал так: накопипастил тысяч 30 (это быстро на самом деле) бесплатных прокси из инторнета из постраничной выдачи топовых свалок прокси. Потом отдельно процессил данные через прокси и отдельно строил рейтинг прокси серверов (строился на основе времени ответа на тестовый запрос на тестовый url). Меньше время ответа при работе через прокси на тестовом урле -> выше рейтинг. Соотв. если делался запрос за реальными данными, то из рейтинга бралось прокси и исспользовалось для запроса, если был таймаут, то прокси выкидывалось (с retry policy). Периодически рейтинг перестраивался, т.к. прокси умирают, да. Запросы за данными в N потоков и одновременно используются соотв. N прокси. В итоге 250к запросов с лимитом АПИ к которому я обращался в 1-2к в сутки с одного IP ушло часов 5 в сумме. Есть подозрение что было дешевле заплатить за доступ к API к которому я стучался, но там бы вряд ли кто то платил бы + на самом деле времени ушло не много + задача была разовая.
Была же какая-то либа для удобных ретраев? Забыл название.
да. Вот норм на самом деле это Polly.
В самом замечательном случае я хотел бы, чтобы происходило следующее через один инстанс HttpClient: Делаем запрос без прокси. Если ответ успешен, то все норм. Если ответ плохой, вот тут включаем политику Polly переподключения, но каждое переподключение будет с разным прокси
На коленке делал так: накопипастил тысяч 30 (это быстро на самом деле) бесплатных прокси из инторнета из постраничной выдачи топовых свалок прокси. Потом отдельно процессил данные через прокси и отдельно строил рейтинг прокси серверов (строился на основе времени ответа на тестовый запрос на тестовый url). Меньше время ответа при работе через прокси на тестовом урле -> выше рейтинг. Соотв. если делался запрос за реальными данными, то из рейтинга бралось прокси и исспользовалось для запроса, если был таймаут, то прокси выкидывалось (с retry policy). Периодически рейтинг перестраивался, т.к. прокси умирают, да. Запросы за данными в N потоков и одновременно используются соотв. N прокси. В итоге 250к запросов с лимитом АПИ к которому я обращался в 1-2к в сутки с одного IP ушло часов 5 в сумме. Есть подозрение что было дешевле заплатить за доступ к API к которому я стучался, но там бы вряд ли кто то платил бы + на самом деле времени ушло не много + задача была разовая.
>то прокси выкидывалось (с retry policy) Ну у тебя происходило retry с новым прокси через тот же HttpClient?