2012-02-02 197 views
3

在启动PHP SOAP客户端Web服务时,我在生产中遇到这些错误。PHP SoapClient SSL连接超时错误

这里是代码行,其产生错误:

//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%总请求。

此外,这是一个基于HTTPS web服务的PHP SOAP,托管web服务的服务器也有防火墙,但是我们所有的前端服务器都可以通过防火墙访问。

此外,default_socket_timeout设置为60秒,最大执行时间为30秒。

我的问题:

我想知道为什么发生这种情况。

回答

0

试试这个:

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