我试图连接到wsdl服务, 但得到这个错误:
wsdl错误:获取http://api.didww.com/api/?wsdl - HTTP错误:标头的套接字读取超时
本地没有问题,但在远程服务器上我收到此错误。
远程服务器:Linux CentOS(FreePBX)
代码:
$client = new soapclient($site, true);
$err = $client->getError();
if ($err)
{
echo 'ERROR: ' . $err . '</pre>';
}
$username = 'XXXX';
$_key = 'YYYY';
$auth_string = sha1($username.$_key);
$arr = array();
$arr[0] = $auth_string;
$arr[1] = $country_id;
$result = $client->call('getcities', $arr);
if ($client->fault)
{
echo '<pre>';
print_r($result);
echo '</pre>';
}
else
{
$err = $client->getError();
if ($err)
{
echo 'Error: <pre>' . $err . '</pre>';
}
}
echo '<pre>';
print_r($result);
echo '</pre>';
答案 0 :(得分:2)
默认套接字超时在ini中设置,因此您可以增加它并查看它是否有效
ini_set('default_socket_timeout', 160);
或者您可以将它作为构造函数参数(选项)传递给soapclient
$client = new SoapClient($wsdl, array("connection_timeout"=>15));