[英]Error Fetching http headers SOAP
我對 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
那是什么原因呢?
對我有用的配置在我的 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 秒,並且立即引發了錯誤“錯誤獲取 http 標頭”。
我希望它能幫助你。
為了修復這個錯誤,我們可以增加要么增加php.ini
的套接字超時default_socket_time
要么在傳遞給 SoapClient 的構造函數的參數數組中添加connection_timeout
參數。
這些參數以秒為單位。
在 php.ini
default_socket_timeout = 120
或者,您可以從代碼更改
ini_set('default_socket_timeout', 120);
注意:php 中默認的套接字超時時間為 60 秒。
connection_timeout
參數$client = new SoapClient($wsdl, array('connection_timeout' => 120));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.