Intereting Posts
Акцентированные символы в таблице mySQL Заменить контент для переменной PHP (сохранены теги HTML) CodeIgniter удаление index.php из url Как уничтожить Zend_Session_Namespace без session_destroy Как заставить GPG принимать входные данные от STDIN вместо попытки открыть файл? Логический режим, где запрос соответствия с динамическим значением, используя PHP MySQLi Подготовленные заявления Как запретить другим пользователям отправлять свои собственные данные на мою php-страницу? Как добавить разбиение на страницы на таблицы объединения в codeigniter Добавление столбца флажка в таблицы со значениями, динамически генерируемыми из базы данных в php Разделить текст на отдельные слова двойные результаты в моем массиве (mysql_fetch_array) Как отформатировать число до суммы в долларах в PHP PHP array_replace без создания ключей Передача переменной PHP во внешнем JS-файле Как преобразовать XML в объект OCI-Lob?

SOAP-ERROR: анализ WSDL: не удалось загрузить из <URL>

В PHP: я получаю сообщение об ошибке:

SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://xxx.xxxx.asmx?WSDL' : failed to load external entity "http://xxx.xxxx.asmx?WSDL" 

Мой код:

 <?php header('Content-Type: text/plain'); if (!class_exists('SoapClient')) { die ("You haven't installed the PHP-Soap module."); } ini_set('max_execution_time',1 ); try { $options = array( 'soap_version'=>SOAP_1_2, 'exceptions'=>true, 'trace'=>1, 'cache_wsdl'=>WSDL_CACHE_NONE ); $client = new SoapClient('http://xxx.xxxx.asmx?WSDL', $options); // Note where 'CreateIncident' and 'request' tags are in the XML $results = $client->CreateIncident( array( 'FirstName'=>'gyaan', 'LastName'=>'p', 'Email'=>'aa@gmail.com', 'QueryProductClass'=>'QueryProductClass', 'ChannelCode'=>12, 'CampaignCode'=>234, 'Lob'=>'Lob', 'PackageName'=>'SEONI', 'PackageCode'=>'SMP', 'TravelYear'=>2012, 'TravelMonth'=>06, 'TravelDay'=>29, 'CityOfResidence'=>'Jabalpur', 'ncidentNotes'=>'testing ignor this', 'MobilePhone'=>'1234567890', 'DepartureCity'=>'bangalore', 'NoOfDaysTravel'=>'3 Days', 'VendorName'=>'TEST HIQ' ) ); } catch (Exception $e) { echo "<h2>Exception Error!</h2>"; echo $e->getMessage(); } ?> - <?php header('Content-Type: text/plain'); if (!class_exists('SoapClient')) { die ("You haven't installed the PHP-Soap module."); } ini_set('max_execution_time',1 ); try { $options = array( 'soap_version'=>SOAP_1_2, 'exceptions'=>true, 'trace'=>1, 'cache_wsdl'=>WSDL_CACHE_NONE ); $client = new SoapClient('http://xxx.xxxx.asmx?WSDL', $options); // Note where 'CreateIncident' and 'request' tags are in the XML $results = $client->CreateIncident( array( 'FirstName'=>'gyaan', 'LastName'=>'p', 'Email'=>'aa@gmail.com', 'QueryProductClass'=>'QueryProductClass', 'ChannelCode'=>12, 'CampaignCode'=>234, 'Lob'=>'Lob', 'PackageName'=>'SEONI', 'PackageCode'=>'SMP', 'TravelYear'=>2012, 'TravelMonth'=>06, 'TravelDay'=>29, 'CityOfResidence'=>'Jabalpur', 'ncidentNotes'=>'testing ignor this', 'MobilePhone'=>'1234567890', 'DepartureCity'=>'bangalore', 'NoOfDaysTravel'=>'3 Days', 'VendorName'=>'TEST HIQ' ) ); } catch (Exception $e) { echo "<h2>Exception Error!</h2>"; echo $e->getMessage(); } ?> 

Пожалуйста, скажите мне, где я делаю ошибку. Я новичок в WSDL и мыле

Я решил это на своей настройке WAMP, включив расширение php_openssl , поскольку URL-адрес, который я загружал из используемого https:// .

У меня была эта проблема, и мне потребовались часы, чтобы понять. Главной причиной этой ошибки является то, что SoapClient не может передать файл веб-службы с хоста. Я раскомментировал эту строку «extension = php_openssl.dll» в моем файле php.ini, и она работает.

У меня было точно такое же сообщение об ошибке. В моем случае внесение записи в файл /etc/hosts (на сервере, на котором размещена служба) для целевого сервера, на который ссылается WSDL, зафиксировал его.

Вид странно сформулированного сообщения об ошибке ..

Если вы хотите использовать это на localhost, используйте WAMP.

Затем щелкните значок в трее> Услуги PHP> и включите следующее:

  • МЫЛО
  • php_openssl
  • OpenSSL
  • локон

ps какой-либо бесплатный веб-хостинг может не иметь этих опций

Попробуй это:

 $Wsdl = 'http://xxxx.xxx.xx/webservice3.asmx?WSDL'; libxml_disable_entity_loader(false); //adding this worked for me $Client = new SoapClient($Wsdl); //Code... 

Попробуйте добавить этот фрагмент кода. Это сработало для меня.

 $opts = array( 'ssl' => array('ciphers'=>'RC4-SHA', 'verify_peer'=>false, 'verify_peer_name'=>false) ); // SOAP 1.2 client $params = array ('encoding' => 'UTF-8', 'verifypeer' => false, 'verifyhost' => false, 'soap_version' => SOAP_1_2, 'trace' => 1, 'exceptions' => 1, "connection_timeout" => 180, 'stream_context' => stream_context_create($opts) ); $url = "http://www.webservicex.net/globalweather.asmx?WSDL"; try{ $client = new SoapClient($url,$params ); } catch(SoapFault $fault) { echo '<br>'.$fault; } 

Я получил ту же ошибку, и я решил, что она ищет настройки мыла в файле php.ini и меняет soap.wsdl_cache_enabled = 1 на soap.wsdl_cache_enabled = 0

добавьте запись dns в файл системных хостов
например: http: //aaa.com/service.asmx? WSDL
вы можете получить IP-адрес aaa.com с помощью ping
а затем добавить в файл hosts

Включить все это из файла конфигурации php.ini

 extension=php_openssl.dll extension=php_curl.dll extension=php_xmlrpc.dll 

Аналогичная ошибка. Понял, что у меня была настройка .htpasswd для конкретного хоста. Скомпилировал его из файла .htaccess и отлично работал.

Я получил ту же ошибку

Не удалось подключиться к API Magento WebService: SOAP-ERROR: Разбор WSDL: Не удалось загрузить из 'example.com/api/soap/?wsdl': не удалось загрузить внешнюю сущность "example.com/api/soap/?wsdl "

и моя проблема была решена после того, как я обновил URL-адрес Magento Root до

example.com/index.php/api/soap/?wsdl

Да, мне не хватало index.php, который вызывает ошибку.

Как упоминалось в предыдущих ответах, эта ошибка может возникать при взаимодействии с SOAP-службой по HTTPS-соединению, и проблема связана с соединением. Проблема может быть на удаленной стороне (недействительный сертификат) или на клиенте (в случае отсутствия файлов CA или PEM). См. http://php.net/manual/en/context.ssl.php для всех возможных параметров контекста SSL. В моем случае установка пути к моему локальному сертификату разрешила проблему:

 $context = ['ssl' => [ 'local_cert' => '/path/to/pem/file', ]]; $params = [ 'soap_version' => SOAP_1_2, 'trace' => 1, 'exceptions' => 1, 'connection_timeout' => 180, 'stream_context' => stream_context_create($context), 'cache_wsdl' => WSDL_CACHE_NONE, // eliminate possible issue from cached wsdl ]; $client = new SoapClient('https://remoteservice/wsdl', $params);