PHP SOAP проблемы с ответом - PullRequest
2 голосов
/ 29 апреля 2010

, так как несколько дней у меня возникают проблемы с моим разработанным интерфейсом поиска php soap (расширение php soap, NOT nusoap) к литературному сервису PubMed, использующему их сервис eutils wsdl (Entrez Utils).

До того, как возникли проблемы, я использовал возвращенный массив из функции низкого уровня __soapcall (), он работал хорошо, извлекая некоторую информацию для моего модуля нечеткого агента, преобразовывая ее в xml и передавая ее в мой движок шаблонов xml / xsl.

На прошлой неделе по какой-то причине я получил исключения типа «похоже, что мы не получили документ XML» из функции __soapcall () с некоторыми поисковыми терминами. Поэтому я решил включить исключения и параметры трассировки в вызове SoapClient и начал использовать низкоуровневую функцию __getLastResponse (), чтобы увидеть, что происходит. В результате я получаю меньше ошибок, но все еще возникают проблемы с определенными поисками. Возвращенная строка XML обрезана и, следовательно, неполная, похоже, что возвращаемая строка слишком велика (иногда более 180 КБ). Я не могу обработать результат дальше, потому что функции DomDocument генерируют исключения с неполным и недействительным xml-ответом. Я также попытался установить параметры для сжатия (SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP), но безуспешно, потому что я думал, что это также могут быть фрагментированные данные, возвращаемые как ответ.

Ну, я понятия не имею, как решить эту проблему, сейчас третий день. Я уменьшил количество результатов поиска до 10 результатов на запрос (ранее 20 результатов), поведение улучшается, но все равно появляются ошибки, потому что xml-ответ усекается. Мой основной вопрос, что ограничивает длину строки __getLastResponse (). Я не обновлял и не обновлял какой-либо пакет, а также не вносил программные изменения в код, пока не возникли проблемы. На моем сервере разработки, а также на рабочем сервере (literatur.ucb.de) возникают те же проблемы.

Я отправил письмо по электронной почте для получения справки или информации, если они внесли изменения в eutils, до сих пор нет ответа, также на их домашней странице нет объявлений о каких-либо изменениях.

Любые подсказки, что еще я мог бы попытаться, чтобы запросы Pubmed Soap снова стали стабильными, пожалуйста, дайте мне знать. Я ценю любой намек.

Платформа (разработка) - это Ubuntu Linux с PHP 5.2.4-2ubuntu5.10.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...