Erreur SOAP PHP : analyse WSDL : échec du chargement de l'entité externe
Analyse du problème
Le message d'erreur fourni indique un problème avec le client SOAP qui tente de charger le fichier WSDL à partir d'une URL spécifiée, "http://localhost/MyRegistration/login.xml". Cependant, il rencontre une erreur impliquant le chargement d'une entité externe, en particulier le même fichier WSDL.
Étapes de dépannage
-
Vérifier l'URL WSDL : Assurez-vous que le fichier WSDL se trouve à l'URL spécifiée et qu'il est accessible par le client SOAP.
-
Vérifiez les autorisations de fichier : Assurez-vous que le fichier WSDL contient le fichier approprié autorisations pour permettre sa lecture par le serveur Web hébergeant le client SOAP.
-
Test de la validation WSDL : utilisez un validateur WSDL en ligne ou un outil comme SoapUI pour valider le fichier WSDL pour toute erreur ou des incohérences.
-
Désactiver le chargement d'entités externes XML : Dans PHP 5.6.5 et versions ultérieures, le chargement d'entités externes en XML est désactivé par défaut. Pour l'activer, vous pouvez ajouter la ligne suivante à votre code PHP avant de créer le client SOAP :
<code class="php">libxml_disable_entity_loader(false);</code>
Copier après la connexion
Paramètres SSL facultatifs
Si vous êtes en utilisant PHP 5.6.5 ou version ultérieure, vous devrez peut-être spécifier des paramètres SSL supplémentaires lors de la création du client SOAP pour autoriser les connexions non sécurisées :
<code class="php">$opts = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false
)
);
$params = array(
'context' => stream_context_create($opts)
);
$sClient = new SoapClient($wsdlUrl, $params);</code>
Copier après la connexion
Conseils supplémentaires
- Assurez-vous que vos extensions PHP et SOAP sont correctement installées et configurées.
- Vérifiez s'il existe des pare-feu ou des paramètres de sécurité bloquant l'accès au fichier WSDL.
- Essayez d'utiliser un autre fichier WSDL. ou un point de terminaison pour éliminer la possibilité d'un problème spécifique avec le fichier WSDL.
- Si le problème persiste, consultez la documentation SOAP PHP ou demandez l'aide d'un développeur Web expérimenté.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!