SOAPClient выдает ошибку при передаче слишком большого количества данных - PullRequest
0 голосов
/ 07 декабря 2009

У меня есть простой класс, который возвращает результаты из выбранных классов. Пользователь БД имеет только права выбора.

Класс доступен через SOAP, поэтому третьи стороны могут запрашивать базу данных для создания инструментов отчетности.

Проблема в том, что PHP SoapClient выдает исключение SoapFault, когда я пытаюсь выбрать слишком много строк. В таблице с 10 столбцами и небольшими фрагментами данных я могу выбрать только около 80 строк.
Ответ Soap возврата имеет общий размер 134 КБ, что, очевидно, не очень много ...

Я пытался установить параметры ini как max_input_time, memory_limit и max_execution_time, но ничего не произошло ...

Почему отказывает SoapClient?

Произошла ошибка: (Fatal error: Uncaught SoapFault exception: [Client] looks like we got no XML document

1 Ответ

0 голосов
/ 07 февраля 2011

В классе SoapClient произошла ошибка. Мне не удалось это исправить. Я установил default_socket_timeout, о котором они писали в руководстве, но единственный эффект заключался в том, что SoapFault исчез.

Я решил проблему с curl и handmade xml с этими настройками:

ini_set('default_socket_timeout',120); //2 minutes for downloading the data
ini_set('memory_limit','256M'); //increase memory limit
ignore_user_abort(true); //abort user ignore
set_time_limit(0); //set execution time infinite
curl_setopt($connection,CURLOPT_TIMEOUT,120); //2 minutes timeout

Классы SoapClient и SoapServer содержат множество ошибок (ошибка тайм-аута, отсутствие проверки xsd и т. Д.), Поэтому, если вы можете, выберите другую альтернативу.

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