在启动php soap客户机webservice时,我在生产中会遇到这些错误。
下面是生成错误的代码行:

//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%。
这也是一个phpsoappoverhttps的webservice,同时托管webservice的服务器有防火墙,但是我们所有的前端服务器都可以通过防火墙访问。
同时default_socket_timeout设置为60秒,最大执行时间为30秒。
我的问题是:
我想知道为什么会这样。

最佳答案

试试这个:

    $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")
    );

关于php - PHP SoapClient SSL连接超时错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9114343/

10-12 18:30