php - SOAP 客户端返回无法加载外部实体

标签 php soap wsdl nusoap

我尝试使用 PHP 来使用一个简单的 Web 服务,不幸的是我收到以下错误消息(在我看来),说明 SOAP URL 无法打开,但在浏览器中它确实工作正常(http://www.webservicex.net/uklocation.asmx?WSDL)。

知道我的错误在哪里吗?

错误消息:

Warning: SoapClient::SoapClient(http://www.webservicex.net/uklocation.asmx?WSDL) [soapclient.soapclient]: failed to open stream: Connection timed out in /home/sia-deutschland_de/www/tests/test.php on line 14

Warning: SoapClient::SoapClient() [soapclient.soapclient]: I/O warning : failed to load external entity "http://www.webservicex.net/uklocation.asmx?WSDL" in /home/sia-deutschland_de/www/tests/test.php on line 14 Exception Error!

SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://www.webservicex.net/uklocation.asmx?WSDL' : failed to load external entity "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(); 
}
?>

最佳答案

这并不是一个真正的错误,解决方案非常简单:我将代码安装在共享托管包上,似乎从那里不允许访问互联网。从我的本地系统来看,它工作正常。

关于php - SOAP 客户端返回无法加载外部实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8227420/

相关文章:

javascript - 向 SOAP WSDL 发送请求

java - 使用 xpath 在 Java 中解析带有命名空间的 XML

c# - 如何为使用 Axis 1.4 Web 服务的 C# Web 服务客户端添加自定义 Http header

PHP Websocket 服务器 hybi10

PHP:如何连接对字符串变量的引用?

java - WSDL 警告 : not a SOAP port, 它没有 SOAP :地址

php - 使用类映射时使 SOAP 客户端更具容错能力

java - 当 java 中无法发现 wsdl 时,建议使用 SOAP Web 服务的方式是什么

php - 在数据库与文件(.json)中保存网站设置

php - 在 CakePHP 3.x 中保存 HasMany 关联数据