2015-03-05 2 views
1

Я пытаюсь загрузить pdf, используя cURL, и я застрял на странице «Ошибка сервера в/Приложение». Мой код:Ошибка сервера в '/' Применение при попытке cURL

$url = "https://some.domain.com/Reports/Report?ReportID=123456" 
$ch = curl_init($url); 
$header = array ('Host: some.domain.com'); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.76 Safari/537.36'); 
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, $header); 

curl_setopt($ch, CURLOPT_COOKIE, "ASP.NET_SessionId=XXXXXXXX; __RequestVerificationToken_XXXXXXX=lots-of-alpha-numeric-characters"); 
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt"); 
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt"); 

curl_setopt($ch, CURLOPT_REFERER, "https://some.domain.com"); 

$output = curl_exec($ch); 
echo $output; 
curl_close($ch); 

Есть ли что-то еще, что я могу попробовать или еще отладить, что могу сделать?

По-видимому, это вызвано одним из моих параметров. В URL-адресе есть несколько параметров. &Flag=True, по-видимому, вызывает ошибку. Если я изменю его на &Flag=False, я получу пустую страницу.

+1

Что вы можете получить, если попадете в URL прямо в браузере? Требуется ли аутентификация? – mkaatman

+0

Загрузка в формате PDF, если я получаю доступ к URL-адресу непосредственно в браузере. Он не требует имени пользователя и пароля. – MrPeanut

+0

После вашего 'curl_exec ($ ch)', что такое вывод 'echo curl_error ($ ch)'? – mkaatman

ответ

0

Эта ошибка возникла из-за того, что заголовок запроса на отклонение не содержал файлы cookie, необходимые для загрузки файла. Добавление этих файлов cookie в заголовок исправлено.

Смежные вопросы