CURL возвращает bool(false). Почему?
Хочу спарсить данные с сайта гибdd https://xn--90adear.xn--p1ai/check/driver. Делаю вот так:
ini_set('max_execution_time', 60);
$cookieFile = tempnam(sys_get_temp_dir(), 'ccf');
$timeOut = ini_get('max_execution_time') - 5;
$ch = curl_init();
curl_setopt_array(
$ch,
[
CURLOPT_AUTOREFERER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_MAXREDIRS => 3,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_CONNECTTIMEOUT => $timeOut,
CURLOPT_TIMEOUT => $timeOut,
CURLOPT_COOKIEFILE => $cookieFile,
CURLOPT_COOKIEJAR => $cookieFile,
CURLOPT_POSTFIELDS => [
"num" => "7746468933",
"date" => "2010-16-20",
"captchaWord" => "",
"reCaptchaToken" => "03........FU"
],
CURLOPT_URL => 'https://xn--b1afk4ade.xn--90adear.xn--p1ai/proxy/check/driver',
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0',
CURLOPT_HTTPHEADER => [
'Upgrade-Insecure-Requests: 1',
'Pragma: no-cache',
'Cache-Control: no-cache',
'Origin: https://xn--90adear.xn--p1ai',
'Referer: https://xn--90adear.xn--p1ai/check/driver',
],
]
);
var_dump(curl_exec($ch));
curl_close($ch);
В итоге получаю bool(false) Failed to connect to xn--b1afk4ade.xn--90adear.xn--p1ai port 443: Время ожидания соединения истекло странно, но почему он не коннектит ? с браузера норм.. должен получить ошибку 201 по идее, что капча не прошла. А получаю false. Подскажите пожалуйста. Заранее спасибо.
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false, - Не помогает.
Ответы (1 шт):
Автор решения: ktscript
→ Ссылка
Причин может быть несколько, но вижу что Вы подключаетесь по https, а в настройках curl не указали версию протокола SSL. Попробуйте добавить следующие команды :
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); //не производить варификацию сертификата
curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_DEFAULT);
а далее попробуйте отловить вывод:
$response = curl_exec($ch);
$errno = curl_errno($ch);
$info = curl_getinfo($ch);