Возврату soapclient не удалось загрузить внешнюю сущность - PullRequest
2 голосов
/ 22 ноября 2011

Я пытаюсь использовать простой веб-сервис с использованием PHP, к сожалению, я получаю следующие сообщения об ошибках, которые (как мне кажется) говорят, что URL-адрес SOAP не может быть открыт, но в браузере он работает нормально (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]: предупреждение ввода-вывода: не удалось загрузить внешнюю сущность "http://www.webservicex.net/uklocation.asmx?WSDL" в /home/sia-deutschland_de/www/tests/test.php в строке 14 Ошибка исключения!

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(); 
}
?>

Ответы [ 2 ]

5 голосов
/ 23 ноября 2011

На самом деле это не было ошибкой, решение довольно простое: я установил код в пакет общего хостинга, и, похоже, оттуда доступ в интернет запрещен.С моей локальной системы все работает нормально.

0 голосов
/ 09 ноября 2013

Кроме того, как и в моем случае, проблема может быть в URL, у меня был пробел в начале моей переменной, которая содержит URL и которая вызвала ошибку.

...