错误获取http头SOAP

问题描述:

我有一个SOAP问题,没有找到真正的答案。错误获取http头SOAP

try { 
    $objResponse = $objSoapClient->$strMethod($objMethod->getSoapRequest()); 
} 
catch (SoapFault $e) { 
    GlobalLogState::write("exception with code(".$e->getCode()."): \n".$e->getMessage()); 
} 

这是我在try catch块中的简单SOAP请求。

我得到一个异常的SOAPFault:

Error Fetching http headers 

是什么原因呢?

要修正这个错误,我们可以增加或者增加套接字超时default_socket_timephp.ini或传递给SoapClient的的构造函数的参数数组中添加connection_timeout参数。

这些参数在

  1. 在php.ini

    default_socket_timeout = 120

或者,您可以从代码更改

ini_set('default_socket_timeout', 120);

注:在PHP中默认套接字超时是60秒。

    在SoapClient的构造
  1. connection_timeout参数
  2. $client = new SoapClient($wsdl, array('connection_timeout' => 120));

开始=>

已经为我被限定在我的PHP脚本以下参数工作的配置:

ini_set('default_socket_timeout', 5000); 
    $client = new \SoapClient($url,array(
    'trace' =>true, 
    'connection_timeout' => 5000, 
    'cache_wsdl' => WSDL_CACHE_NONE, 
    'keep_alive' => false, 
)); 

请评论。

根据我对这个问题的经验,最重要的参数定义是ini_set('default_socket_timeout',5000);

在我的测试过程中,我将default_socket_timeout定义为5秒,错误'Error Fetching http headers'立即引发。

我希望它能帮助你。