Ошибка тайм-аута SSL-соединения PHP SoapClient - PullRequest
3 голосов
/ 02 февраля 2012

При запуске веб-службы клиента PHP SOAP я получаю эти ошибки в работе.

Вот строка кода, которая генерирует ошибку:

//the php soap server is at different server
$client = new SoapClient(SITE_ROOT . "locally hosted wsdl",
                         array("trace" => 1, "exception" => 1));

Генерируемая ошибка:

ERRNO: 2 \nTEXT: SoapClient::__doRequest() [<a href='soapclient.--dorequest'>soapclient.--dorequest</a>]: SSL: connection timeout \nLOCATION:

Таким образом, эти ошибки возникают только на производстве и составляют 2-3% от общего числа запросов.

Также это PHP SOAP через HTTPS веб-сервис, также сервер, на котором размещается веб-сервис, имеет брандмауэр, но все наши внешние серверы имеют доступ через брандмауэр.

Также для default_socket_timeout установлено значение 60 секунд, а максимальное время выполнения составляет 30 секунд.

Мой вопрос:

Я хочу знать, почему это происходит.

1 Ответ

0 голосов
/ 09 июня 2012

Попробуйте это:

    $client=new SoapClient(
        SITE_ROOT."your/wsdl.here.wsdl",
        array(
            "exceptions" => true, 

            "connection_timeout" => 60,

            "style" => SOAP_RPC, 
            "use" => SOAP_ENCODED, 
        )
    );

    $mxResponse=$client->__soapCall(
        "someFunctionName", 
        array("params", "here")
    );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...