cURL请求不接受cookie,导致无限重定向

时间:2015-03-06 14:14:16

标签: php curl cookies

我正在尝试构建一个下载pdf的cURL请求。我收到“错误:最多(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, '-'(来自here),一切都没有运气。使用浏览器,pdf下载得很好。但是,即使我使用Web Developer工具栏禁用所有cookie,它也会下载(所以这可能不是我的真正问题?)。

1 个答案:

答案 0 :(得分:0)

您需要使用PHPSESSID的值发送CURLOPT_COOKIE。这就是服务器识别cookie的方式。

你应该添加这个

curl_setopt($ch, CURLOPT_COOKIE, 'PHPSESSID=' . $_COOKIE['PHPSESSID'] . '; path=/');