xml — пустой результат с PHP Curl, но ответ существует в формате json

Я хочу извлечь данные из этого URL с помощью Php Curl

https://www.tiket.com/ajax/pingFlightSearch?d=CGK&а = ДПС&дата = 2017-08-18&взрослый = 1&ребенок = 0&Младенец = 0&авиакомпании =% 5B% 22LION% 22% 5D&Субсидия = истина&page_view = roundseperate

Но у меня есть пустая страница.

Я проверяю эту ссылку и проверяю с помощью mozilla network-> xhr, и на вкладке ответа есть содержимое.

Как я могу извлечь данные из этой ссылки с помощью php curl?

Вот мой код

$url = 'https://www.tiket.com/ajax/pingFlightSearch?d=CGK&a=DPS&date=2017-08-18&adult=1&child=0&infant=0&airlines=%5B%22LION%22%5D&subsidy=true&page_view=roundseperate';

$cURL = curl_init();

curl_setopt($cURL, CURLOPT_URL, $url);
curl_setopt($cURL, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17');
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($cURL, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($cURL, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($cURL, CURLOPT_AUTOREFERER, true);
curl_setopt($cURL, CURLINFO_HEADER_OUT, true);
curl_setopt($cURL, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($cURL, CURLOPT_VERBOSE,true);
curl_setopt($cURL, CURLOPT_HTTPHEADER, array(
"Host" => "www.tiket.com",
"User-Agent" => "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0",
"Accept" => "application/json, text/javascript, */*; q=0.01",
"Accept-Language" => "en-us,en;q=0.5",
"Accept-Encoding" => "gzip, deflate, br",
"Content-Type" => "application/cap+xml;charset=utf-8",
"X-NewRelic-ID" => "UQIGUlJXGwACUFZaAAM=",
"X-Requested-With" => "XMLHttpRequest",
"Connection" => "keep-alive",
"Pragma" => "no-cache",
"Cache-Control" => "no-cache"));

$result = curl_exec($cURL);

print_r($result);

curl_close($cURL);

Я должен добавить ‘X-Requested-With: XMLHttpRequest’ в заголовок этой ссылки, тогда ответ будет получен.

редактировать заголовок

Тогда ответ выйдет
[результат ответа] [2]

0

Решение

Вы сделали ошибку с CURLOPT_HTTPHEADER. Вы устанавливаете параметры как Key => Value, но это неверно. Вы должны установить params в качестве значений с «:» в качестве разделителя.

curl_setopt($cURL, CURLOPT_HTTPHEADER, array(
"Host: www.tiket.com",
"Accept: application/json, text/javascript, */*; q=0.01",
"Accept-Language: en-us,en;q=0.5",
"Content-Type: application/cap+xml;charset=utf-8",
"X-NewRelic-ID: UQIGUlJXGwACUFZaAAM=",
"X-Requested-With: XMLHttpRequest",
"Connection: keep-alive",
"Pragma: no-cache",
"Cache-Control: no-cache"));

Также я удалил эту строку, чтобы получить несжатые данные

"Accept-Encoding: gzip, deflate, br",
1

Другие решения

Мате, вы уверены, что эта ссылка работает? потому что я проверил код с помощью Mozilla и Chrome, и ответ пуст, и я попытался очистить с помощью простого класса php, который у меня есть с curl, и результат пуст, потому что ссылка не имеет ответа

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector