Yura
Новичок
Проблема с получением данных через curl
На удаленном сервере есть xml-файл, который нужно и получить.
Есть руководство от разработчика:
Данный веб-сервис позволяет получить XML-документ со списком туров, удовлетворяющих условиям запроса. Обращение к веб-сервису происходит с помощью POST HTTP-запроса следующего вида:
POST /touronline/xml/?action=xml_tours¶m1=val1¶mN=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, включая форму поиска туров
Что я делаю не так?
На удаленном сервере есть xml-файл, который нужно и получить.
Есть руководство от разработчика:
Данный веб-сервис позволяет получить XML-документ со списком туров, удовлетворяющих условиям запроса. Обращение к веб-сервису происходит с помощью POST HTTP-запроса следующего вида:
POST /touronline/xml/?action=xml_tours¶m1=val1¶mN=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, включая форму поиска туров
Что я делаю не так?
во как оказывается