php soapclient wsdl SOAP-ERREUR: Analyse d'un WSDL: impossible de charger à partir de
J'ai cherché et cherché ici à stackoverflow mais je n'ai pas trouvé de solution à mon problème spécifique. Je reçois l'erreur
SOAP-ERROR: Parsing WSDL: Couldnt load from "https://sampleurl.com/MerchantQueryService.asmx?WSDL" : failed to load external entity "https://sampleurl.com/MerchantQueryService.asmx?WSDL"
Je suis en train d'utiliser une API SOAP avec une URL comme
https://sampleurl.com/MerchantQueryService.asmx?WSDL
Je suis en cours d'exécution MAMP sur mon localhost et à l'aide de godaddy hébergement mutualisé, j'ai essayé sur les deux avec le fichier wsdl peut être trouvé ici
http://clemdemo.com/test.wsdl
En PHP j'utilise le code ci-dessous
error_reporting(-1);
ini_set('display_errors', 'On');
ini_set('soap.wsdl_cache_enabled', 0);
echo "<pre>";
try {
$url = "https://sampleurl.com/MerchantQueryService.asmx?WSDL ";
$headers = [
'Host: sampleurl.com',
'Connection: Keep-Alive',
'User-Agent: PHP-SOAP/5.3.29',
'Content-Type: text/xml; charset=utf-8',
'SOAPAction: "RequestTransaction"',
'Content-Length: 409'];
$rq = [
"userName" => "username_here",
"passWord" => "password_here",
"referenceId" => "3455566694",
"msisdn" => "346774313"];
try {
$cient = new SoapClient($url,
[
'soap_version' => SOAP_1_2,
'exceptions' => 1,
'cache_wsdl' => WSDL_CACHE_NONE,
'trace' => 1,
'stream_context' => stream_context_create(array('http' => array('header' => $headers)))
]);
print_r($cient);
} catch (SoapFault $e) {
echo "\nFault Code: ".$e->faultcode;
echo "\nFault String: ".$e->faultstring;
}
Sur mon MAMP localhost j'ai du SAVON,openssl et curl.
AUSSI, j'ai essayé d'utiliser (demande d'envoi) à l'API en ligne WSDL http://wsdlbrowser.com, il FONCTIONNE, mais sur le code à l'aide de PHP, il ne parvient pas
Vous devez vous connecter pour publier un commentaire.
Il arrive souvent que les fournisseurs de négliger leurs certificats SSL et donc les sites et les services pour avoir les certificats non valides - je suppose que c'est le cas ici.
La désactivation de la validation du certificat tel que décrit par Kaii ici ou encore mieux demander à votre fournisseur de fixer leur certificat.
Votre code pourrait/devrait ensuite être quelque chose comme:
Le message d'erreur s'affiche pour vous dire que votre application n'est pas en mesure de lire notre WSDL. Essayez d'ouvrir un navigateur à partir de la même machine sur lequel votre application est en cours d'exécution et de voir si vous pouvez accéder à l'adresse WSDL à https://sampleurl.com/MerchantQueryService.asmx?WSDL.
Si ce n'est pas vous avez un réseau/pare-feu/Anti-Virus problème. (au cas où)
Si vous pouvez accéder à cette adresse à partir d'un navigateur, votre application est toujours confronté à ce problème? alors vérifier n'importe quelle application qui pourrait nuire à votre pare-feu.(Anti-virus sont plus la cause probable)
si vous passez cache, et d'obtenir ce dans votre libxml erreur:
LibXMLError Objet
(
[niveau] => 1
[code] => 1549
[colonne] => 0
[message] => n'a pas de charge externe de l'entité "URL"
[fichier] =>
[ligne] => 0
)
Avec aucune description sur Ubuntu, puis son pas en tirant sur la période de fichier. Vous avez juste frappé avec la mise à jour de Ubuntu. Agiter le bronx le saluer et de le redémarrer.