Я использую Guzzle для захвата. json запросов с прокси. Тем не менее, у меня есть пул прокси, которые я использую, и я случайно выберу один из них. Он рандомизирует прокси для каждого запроса.
Проблема, с которой я столкнулся, заключается в том, что небольшое количество моих прокси сломано или мертво. Хотя в большинстве случаев все хорошо, иногда я получаю эти ошибки.
cURL error 56: Received HTTP code 503 from proxy after CONNECT (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)
cURL error 56: Proxy CONNECT aborted (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)
cURL error 35: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to www.mywebsite.com:443 (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)
Я использую следующий код
// for example which randomizes on every request
$proxy = 'http://1.1.1.1:10101';
try {
$request = $client->request('GET', 'https://the.url.com', ['proxy' => $proxy, 'http_errors' => false]);
if ($request->getStatusCode() == 200) {
$json = json_decode($request->getBody(), true);
if (isset($json['data'])) {
// do my thing
} else {
// run the script again
}
} catch (BadResponseException $e) {
// run the script again
}
Я тоже пытался исправить это с помощью try / catch. Но это всегда нарушает код с сообщением об ошибке.
Чего мне не хватает?