Я пытаюсь создать запрос cURL для загрузки pdf. Я получаю сообщение об ошибке "Ошибка: максимум (100) после ошибки" и полагаю, что это связано с проблемой cookie. Здесь соответствующий код из моего запроса cURL:
$cookie_file = "/home/mrpeanut/php/cookie.txt"
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSLVERSION, 4);
curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, implode(':', $arrayCiphers));
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 100);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_COOKIEJAR, realpath($cookie_file));
curl_setopt($ch, CURLOPT_COOKIEFILE, realpath($cookie_file));
И также попробовали CURLOPT_COOKIEJAR, '-'
(отсюда), все без везения. PDF файлы просто отлично работают с помощью браузера. Тем не менее, он загружается, даже если я отключу все файлы cookie с помощью панели инструментов веб-разработчиков (возможно, это не моя настоящая проблема?).
Вам необходимо отправить CURLOPT_COOKIE со значением вашего PHPSESSID. Именно так сервер будет определять cookie.
Вы должны добавить это
curl_setopt($ch, CURLOPT_COOKIE, 'PHPSESSID=' . $_COOKIE['PHPSESSID'] . '; path=/');
FOLLOWLOCATION
, результатом будет «Объект переместился сюда». (с указанием перенаправления). Тем не менее, URL-адрес, который я предоставляю, прекрасно работает в браузере.
add curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE);
Есть сообщения, что бесконечные перенаправления также основаны на неправильном URL-адресе - например, http вместо https или смешанный регистр URL