![]() |
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]() ![]() ![]() |
|
glebskvortsov |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 14.1.2010 Репутация: нет Всего: нет |
Проблема вот какая:
пишется клиент на php + soap для работы с веб-сервисом. В конечном итоге запрос должен представлять из себя следующее:
Хоть это и не особо важно, суть запроса - получение заголовков новостей. По данному запросу должны выводиться 10 новостей на русском языке. Об этом нам говорят ключевые парметры TimeOut, аттрибут class и элемент Value. В общем случае запрос корректно отрабатывает и без элемента Filter, в этом случае новости поступают на всех языках, содержащихся в базе. Если отбросить код на подключение к сервису и отправку заголовков, то доступ к функции получения заголовков на основе WSDL выглядит следующим образом:
В режиме трассировки тело запроса генерится следующим образом:
Из ответа видно, что элемент Value по какой-то причине генерится пустым и поэтому ответ приходит пустым. Есть какие-нибудь идеи на этот счет? Спасибо. Это сообщение отредактировал(а) glebskvortsov - 15.1.2010, 10:31 |
||||||
|
|||||||
Simpliest |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 625 Регистрация: 1.9.2009 Репутация: нет Всего: 3 |
Какой режим работы? WSDL или нет?
Попробуй обернуть Value в array() еще раз. Или воспользуйся SoapParam/SoapVar |
|||
|
||||
glebskvortsov |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 14.1.2010 Репутация: нет Всего: нет |
Да, работает в режиме WSDL. Пробовал оборачивать еще в массивы, эффект такой же, Value пустым отправляется.
Также пробовал использовать SoapVar и Param, в этом случае вообще ругается на отсутствие Value. Но, к примеру, с другой похожей функцией из сервиса отрабатывает корректно. Такой запрос:
и PHP код:
отрабатывает корректно и правильно расставляет из массива значения соответствующих атрибутов и элементов:
Принцип в обоих запросах одинаков: в одмн массив должны заворачиваться текущий элемент, его атрибуты и вложенные элементы с атрибутами следующего уровня. Во втором запрос генерится правильно, а в первом нет. Неясно короче. |
||||||
|
|||||||
Simpliest |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 625 Регистрация: 1.9.2009 Репутация: нет Всего: 3 |
Посмотри WSDL возможно он как-то весело сформирован.
Вот такой запрос какой xml формирует?
Добавлено через 38 секунд P.S. иногда помогает перейти в режим non-WSDL Добавлено через 3 минуты и 33 секунды
В этом-то и фокус, что они не одинаковы. Во втором запросе у тебя нет нод уровнем ниже ноды с атрибутами. А именно из-за этих атрибутов и возникают проблемы. |
||||
|
|||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: X технологии | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |