Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: X технологии > PHP + SOAP запрос |
Автор: glebskvortsov 14.1.2010, 14:48 | ||||||
Проблема вот какая: пишется клиент на php + soap для работы с веб-сервисом. В конечном итоге запрос должен представлять из себя следующее:
Хоть это и не особо важно, суть запроса - получение заголовков новостей. По данному запросу должны выводиться 10 новостей на русском языке. Об этом нам говорят ключевые парметры TimeOut, аттрибут class и элемент Value. В общем случае запрос корректно отрабатывает и без элемента Filter, в этом случае новости поступают на всех языках, содержащихся в базе. Если отбросить код на подключение к сервису и отправку заголовков, то доступ к функции получения заголовков на основе WSDL выглядит следующим образом:
В режиме трассировки тело запроса генерится следующим образом:
Из ответа видно, что элемент Value по какой-то причине генерится пустым и поэтому ответ приходит пустым. Есть какие-нибудь идеи на этот счет? Спасибо. |
Автор: Simpliest 14.1.2010, 17:23 |
Какой режим работы? WSDL или нет? Попробуй обернуть Value в array() еще раз. Или воспользуйся SoapParam/SoapVar |
Автор: glebskvortsov 15.1.2010, 10:08 | ||||||
Да, работает в режиме WSDL. Пробовал оборачивать еще в массивы, эффект такой же, Value пустым отправляется. Также пробовал использовать SoapVar и Param, в этом случае вообще ругается на отсутствие Value. Но, к примеру, с другой похожей функцией из сервиса отрабатывает корректно. Такой запрос:
и PHP код:
отрабатывает корректно и правильно расставляет из массива значения соответствующих атрибутов и элементов:
Принцип в обоих запросах одинаков: в одмн массив должны заворачиваться текущий элемент, его атрибуты и вложенные элементы с атрибутами следующего уровня. Во втором запрос генерится правильно, а в первом нет. Неясно короче. |