SOAP-erreur: Parsing WSDL: ne pouvait pas charger à partir
en PHP: je reçois une erreur:
SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://xxx.xxxx.asmx?WSDL' :
failed to load external entity "http://xxx.xxxx.asmx?WSDL"
Mon code est:
<?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();
}
?>
s'il vous Plaît dites-moi où je fais erreur je suis nouveau dans le WSDL et soap
12 réponses
j'ai résolu cela sur ma configuration WAMP en activant le php_openssl
extension, puisque L'URL que je chargeais à partir de utilisé https://
.
j'ai eu ce problème et il m'a fallu des heures pour comprendre. La principale raison de cette erreur est que SoapClient ne peut pas diffuser le fichier de service web à partir de l'hôte. J'ai décommenté cette ligne "extension=php_openssl.dll" dans mon php.fichier ini et ça fonctionne.
essaye ceci:
$Wsdl = 'http://xxxx.xxx.xx/webservice3.asmx?WSDL';
libxml_disable_entity_loader(false); //adding this worked for me
$Client = new SoapClient($Wsdl);
//Code...
j'ai eu exactement le même message d'erreur. Dans mon cas, faire une entrée dans mon /etc/hosts
fichier (sur le serveur hébergeant le service) pour le serveur cible référencé dans la WSDL corrigé.
sorte d'un message d'erreur étrangement formulé..
si vous voulez l'utiliser sur localhost, utilisez WAMP.
puis cliquez sur l'icône tray > services PHP> et activez les opérations suivantes:
- savon
- php_openssl
- openssl
- curl
p. S. certains hébergements Web gratuits peuvent ne pas avoir ces options
essayez d'ajouter ce morceau de code. Il a travaillé pour moi.
$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;
}
j'ai eu la même erreur et je l'ai résolu en recherchant les paramètres soap dans le php.fichier ini et modification savon.wsdl_cache_enabled=1savon.wsdl_cache_enabled=0
ajouter l'entrée dns à votre fichier d'hôtes système
par exemple: http://aaa.com/service.asmx?WSDL
vous pouvez obtenir aaa.com ' s adresse ip avec ping
et puis Ajouter au fichier hosts
Activer tous ces php.ini fichier de configuration
extension=php_openssl.dll
extension=php_curl.dll
extension=php_xmlrpc.dll
erreur Similaire. Rendu compte que j'avais une .htpasswd configuration de l'hôte particulier. Sans commentaire de l' .fichier htaccess et a bien fonctionné.
j'ai eu le même message d'erreur
impossible de se connecter à L'API Magento WebService: SOAP-ERROR: Parsing WSDL: ne pouvait pas charger de "example.com/api/soap/?wsdl" : n'a pas réussi à charger entité externe "example.com/api/soap/?wsdl"
et mon problème résolu une fois que J'ai mis à jour L'URL de ma racine de Magento vers
example.com/index.php/api/soap/?wsdl
Oui, j'ai été absent de l'index.php qui provoque l'erreur.
comme mentionné dans les réponses précédentes, cette erreur peut se produire lors d'une interaction avec un service SOAP sur une connexion HTTPS, et un problème est identifié avec la connexion. Le problème peut être à l'extrémité distante (cert invalide) ou sur le client (en cas de fichiers CA ou PEM manquants). Voir http://php.net/manual/en/context.ssl.php pour tous les paramètres de contexte SSL possibles. Dans mon cas, le fait de tracer le chemin vers mon certificat local a résolu le problème:
$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);