2012-09-11 60 views
0

我想調用一個magento api方法,這要歸功於一個php SoapClient對象。長皁呼叫沒有得到返回值

問題是創建magentos產品的方法和可能會相對較長(最多2分鐘)。我需要獲取此方法的返回值,但過了一會兒,soap調用停止並返回null。

$session_id = _get_session_id(); 
$client = new SoapClient($api_url . '&SID=' . $session_id, array('trace' => 1)); 

try {   
    $session = $client->login($api_user, $api_password); 
    $result = $client->call($session, 'api_call.method', array($arg1, $arg2); 
} 
catch(SoapFault $soapFault) { 
... 
} 

我真的需要得到被調用的方法返回值,無論它需要多少時間。

你知道爲什麼調用一段時間後返回null嗎?

是否有可以配置的默認超時?

+0

儘量擡高與['set_time_limit'(HTTP最長執行時間值2分: //php.net/manual/en/function.set-time-limit.php) –

+0

您是否已經嘗試增加['default_socket_timeout'](http://www.php.net/manual/en/filesystem.configuration .php#如果ini.default插槽超時)? –

回答

0

這裏是一個解決方案,這要歸功於于爾根評論:

ini_set('default_socket_timeout', 120); // 2 minutes 

此設置呼叫超時長