我试图强制 PHP 永远不要尝试在设定的时间段内连接和发送信息到 web 服务。我在下面使用,由于某种原因,它会在允许的时间内运行,我不知道为什么。例如,如果我将其设置为 30 秒,我会发现在某些情况下需要更长的时间。如果需要太长时间,我需要找到一种 100% 终止连接的方法。
TIA,威尔
$intTimeout = $this->getTimeout();
$client = new SoapClient("{$this->url}?WSDL", array('trace' => 0, 'connection_timeout'=>$intTimeout));
尝试 {
$this->response = $client->someService($objPerson);
}
捕获(异常 $e){
}
$this->restoreTimeout();
函数getTimeout()
{
$intTimeout = @$this->timeout ?$this->timeout : 60;
$_SESSION['old_sock'] = ini_get('default_socket_timeout');
ini_set('default_socket_timeout', $intTimeout);
返回 $intTimeout;
}
函数恢复超时()
{
$intCurSockTime = @$_SESSION['old_sock'];
if($intCurSockTime) ini_set('default_socket_timeout', $intCurSockTime);
}