Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> POST-запрос -> XML-ответ 
:(
    Опции темы
localhost
Дата 29.10.2013, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хирург-длятехкт
**


Профиль
Группа: Участник
Сообщений: 712
Регистрация: 8.11.2005
Где: Н.Новгород

Репутация: нет
Всего: 43



Всем привет!
Есть некий сервер, который получает POST-запрос, разбирает его и формирует XML-ответ

Код


header('Content-Type: text/xml');

/**
* Разбор переданного POST-массива
*/


$xmlstr = "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>\n";
$xmlstr .= "<Root>\n";

/**
* Здесь формируется XML
*/

$xmlstr .= "</Root>\n";

print $xmlstr;


Мне надо из скрипта на клиенте отправить POST-запрос и получить XML-ответ. Вроде бы ничего сложного нет, и ответ я, действительно, получаю, но вот почему-то при попытке передать этот ответ дальше на обработку в XMLReader, последний ругается на невалидный XML.
Если посмотреть на результат работы в браузере, то да - вываливается xml, но интерпретируется браузером как html-код.
Если скопировать исходный код полученной страницы в XML-файл, то обработка происходит корректно.

Подозреваю, что-то с HTTP-заголовками не так. Результат обращения к серверу в Firebug таков:

Код

Заголовки ответа
Connection    close
Content-Type    text/xml
Content-Encoding    gzip
Content-Length    2072
Content-Type    text/html
Date    Tue, 29 Oct 2013 07:54:40 GMT
Server    Apache/2.2.15 (CentOS)
Vary    Accept-Encoding,User-Agent
X-Powered-By    PHP/5.3.3


Код

Заголовки запроса
Accept    text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding    gzip, deflate
Accept-Language    ru-ru,en-us;q=0.8,ru;q=0.5,en;q=0.3
Cache-Control    max-age=0
Connection    keep-alive
DNT    1
Host    domain.tld
User-Agent    Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0


Странно, что "Contect-Type" дублируется

Код клиента в части отправки запроса
Код

    public function getXML($str_URL, $arr_POST_data) {
        
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $str_URL);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($arr_POST_data) . "\n");
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
        curl_setopt($ch, CURLOPT_USERAGENT, 'PHP Connector');
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
    }

$xml = $this->getXML($this->connector_url, $enc_data);


Так как мне отправить POST-запрос, чтобы получить в ответ XML, пригодный для передачи в XMLReader?
Заранее благодарю за помощь

Это сообщение отредактировал(а) localhost - 29.10.2013, 11:40
PM MAIL   Вверх
Fortop
Дата 29.10.2013, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 1
Всего: 42



Цитата(localhost @  29.10.2013,  11:03 Найти цитируемый пост)
$enc_data

Вот эти данные просмотреть в любом hex-редакторе

Затем сохранить их в файл и отправить файл на валидацию (можно в xml-редакторе который это умеет)
Там вам скажут в чем проблема


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
AVA12
Дата 29.10.2013, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 4.5.2008

Репутация: нет
Всего: 4



Цитата
при попытке передать этот ответ дальше на обработку в XMLReader, последний ругается на невалидный XML

Я, возможно, скажу глупость, но, быть может, проблема в том, что XML в ответе невалидный?
PM ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Сеть | Следующая тема »


 




[ Время генерации скрипта: 0.1051 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.