Проблема с получением данных через curl

Yura

Новичок
Проблема с получением данных через curl

На удаленном сервере есть xml-файл, который нужно и получить.
Есть руководство от разработчика:
Данный веб-сервис позволяет получить XML-документ со списком туров, удовлетворяющих условиям запроса. Обращение к веб-сервису происходит с помощью POST HTTP-запроса следующего вида:

POST /touronline/xml/?action=xml_tours&param1=val1&paramN=valN HTTP/1.0

Host: exat.ru

Content-Type: application/x-www-form-urlencoded

Content-Length: NN

user_auth_login=логин&user_auth_password=пароль

где NN-реальная длина POST-части запроса, а param1, paramN, val1, valN – условное обозначение имён и значений параметров запроса, описанных далее. Все параметра запроса могут быть как в GET, так и в POST-части, за исключением параметров user_auth_login и user_auth_password, для которых расположение в теле POST-запроса обязательно


Вот часть моего скрипта (используемые параметры $url, $user_name, $user_passwd и др.) опутил, они заданы или передаются из формы.
$data = 'action=xml_tours&user_auth_login='.$user_name.'&user_auth_password='.$user_passwd.'&resultType=tour_ids&departureId='.$departureId.'&placeItemId[]='.$placeItemId;
$page = "/touronline/xml/";
$headers = array(
"POST ".$page." HTTP/1.0",
"Host: exat.ru",
"Content-Type: application/x-www-form-urlencoded",
"Content-length: ".strlen($data)
);

$c = curl_init($url);
curl_setopt($c, CURLOPT_HTTPHEADER, $headers);
curl_setopt($c, CURLOPT_POST, true);
curl_setopt($c, CURLOPT_POSTFIELDS, $data);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);


$page = curl_exec($c);

var_dump($page);

curl_close($c);

В результате работы этого выводит полностью всю текстовую инфу с источника в html, включая форму поиска туров

Что я делаю не так?
 

Ewg

Новичок
curl_setopt($c, CURLOPT_HTTPHEADER, $headers); - не надо
curl_setopt($c, CURLOPT_HEADER, 0); - можно
 

Yura

Новичок
Одну ошибку, кажется, нашел.
Исправил значение $url - был путь к главной странице сайта-источника, а не к xml. URL, как я понял, должен содержать "/touronline/xml/"
Но в результате выдает вместо xml - string(5460) " "

поставил curl_setopt($c, CURLOPT_HEADER, 0) вместо curl_setopt($c, CURLOPT_HTTPHEADER, $headers);
Ничего не изменилось, так же пишет string(5460) " "
 

Yura

Новичок
Автор оригинала: dimagolov
а ты в исходный код страницы посмотри
:) во как оказывается

Спасибо Ewg и dimagolov за помощь. В исходном коде - то что мне нужно. Дальше, надеюсь, справлюсь
 
Сверху