SOAP-PHP-Fehler: Parsen von WSDL: Externe Entität konnte nicht geladen werden
Problemanalyse
Die bereitgestellte Fehlermeldung weist auf ein Problem hin Problem mit dem SOAP-Client, der versucht, die WSDL-Datei von einer angegebenen URL zu laden, „http://localhost/MyRegistration/login.xml“. Beim Laden einer externen Entität, insbesondere derselben WSDL-Datei, tritt jedoch ein Fehler auf.
Schritte zur Fehlerbehebung
-
WSDL-URL überprüfen: Stellen Sie sicher, dass sich die WSDL-Datei unter der angegebenen URL befindet und dass der SOAP-Client darauf zugreifen kann.
-
Dateiberechtigungen prüfen: Stellen Sie sicher, dass die WSDL-Datei über die entsprechende Datei verfügt Berechtigungen, damit sie vom Webserver gelesen werden kann, der den SOAP-Client hostet.
-
WSDL-Validierung testen: Verwenden Sie einen Online-WSDL-Validator oder ein Tool wie SoapUI, um die WSDL-Datei auf Fehler zu validieren oder Inkonsistenzen.
-
Laden externer XML-Entitäten deaktivieren: In PHP 5.6.5 und höher ist das Laden externer Entitäten in XML standardmäßig deaktiviert. Um es zu aktivieren, können Sie die folgende Zeile zu Ihrem PHP-Code hinzufügen, bevor Sie den SOAP-Client erstellen:
<code class="php">libxml_disable_entity_loader(false);</code>
Nach dem Login kopieren
Optionale SSL-Parameter
Wenn ja Wenn Sie PHP 5.6.5 oder höher verwenden, müssen Sie beim Erstellen des SOAP-Clients möglicherweise zusätzliche SSL-Parameter angeben, um unsichere Verbindungen zu ermöglichen:
<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>
Nach dem Login kopieren
Zusätzliche Tipps
- Stellen Sie sicher, dass Ihre PHP- und SOAP-Erweiterungen ordnungsgemäß installiert und konfiguriert sind.
- Überprüfen Sie, ob Firewalls oder Sicherheitseinstellungen den Zugriff auf die WSDL-Datei blockieren.
- Versuchen Sie es mit einer anderen WSDL-Datei oder Endpunkt, um die Möglichkeit eines bestimmten Problems mit der WSDL-Datei auszuschließen.
- Wenn das Problem weiterhin besteht, lesen Sie die SOAP-PHP-Dokumentation oder wenden Sie sich an einen erfahrenen Webentwickler.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich einen SOAP-PHP-Fehler: Parsing WSDL: Failed to Load External Entity?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!