我尝试使用PHP使用简单的Web服务但遗憾的是我得到以下错误消息(因为在我看来)说SOAP URL无法打开,但在浏览器中它确实可以正常工作(http:// www.webservicex.net/uklocation.asmx?WSDL)。
任何想法我的错误在哪里?
错误消息:
警告: SoapClient的:: SoapClient的(http://www.webservicex.net/uklocation.asmx?WSDL) [soapclient.soapclient]:无法打开流:连接超时 在/home/sia-deutschland_de/www/tests/test.php第14行
警告:SoapClient :: SoapClient()[soapclient.soapclient]:I / O警告 :无法加载外部实体 “http://www.webservicex.net/uklocation.asmx?WSDL”中 第14行的/home/sia-deutschland_de/www/tests/test.php异常 错误!
SOAP-ERROR:解析WSDL:无法加载 'http://www.webservicex.net/uklocation.asmx?WSDL':无法加载 外部实体“http://www.webservicex.net/uklocation.asmx?WSDL”
我的代码:
<?php
// include the SOAP classes
require_once('nusoap.php');
try {
$options = array(
'soap_version'=>SOAP_1_2,
'exceptions'=>true,
'trace'=>1,
'cache_wsdl'=>WSDL_CACHE_NONE
);
$client = new SoapClient("http://www.webservicex.net/uklocation.asmx?WSDL", $options);
// Note where 'Get' and 'request' tags are in the XML
//$client = new soapclient("http://www.webservicex.net/uklocation.asmx?WSDL", $options);
$err = $client->getError();
if ($err) {
// Display the error
echo 'client construction error: ' . $err ;
} else {
$answer = $client->call(’GetUKLocationByCounty’,
array(
'Country'=>'London'));
$err = $client->getError();
if ($err) {
// Display the error
echo 'Call error: ' . $err;
print_r($client->response);
print_r($client->getDebug());
} else {
print_r($answer);
}
}
} catch (Exception $e) {
echo "<h2>Exception Error!</h2>";
echo $e->getMessage();
}
?>
答案 0 :(得分:5)
解决方案非常简单并非如此:我在共享主机软件包上安装了代码,而且似乎不允许上网。从我的本地系统,它工作正常。
答案 1 :(得分:0)
另外,就像我的情况一样,问题可以在url上,我的变量开头有一个空格,其中包含url并导致错误。