我试图强制 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); }