Warum schlägt meine PHP-SOAP-Verbindung mit „SOAP-FEHLER: Parsen von WSDL: Laden von [URL] konnte nicht erfolgen: Laden der externen Entität [URL] ist fehlgeschlagen' fehl?

Mary-Kate Olsen
Freigeben: 2024-11-02 21:56:03
Original
684 Leute haben es durchsucht

Why does my PHP SOAP connection fail with

SOAP-PHP-Fehler beim Parsen von WSDL: Externe Entität konnte nicht geladen werden

Beim Versuch, eine SOAP-Verbindung mit PHP herzustellen, kann der Fehler auftreten „SOAP-FEHLER: WSDL wird geparst: Von [URL] konnte nicht geladen werden: Die externe Entität [URL] konnte nicht geladen werden.“ Dieser Fehler weist darauf hin, dass der SOAP-Client nicht auf die WSDL-Datei zugreifen kann, auf die im Konstruktor des Clients verwiesen wird.

Schritte zur Fehlerbehebung:

  1. Stellen Sie die WSDL sicher Datei ist verfügbar und zugänglich: Stellen Sie sicher, dass die in der Client-Konstruktor-URL angegebene WSDL-Datei im angegebenen Pfad vorhanden ist und für den SOAP-Client zugänglich ist.
  2. SSL-Überprüfung deaktivieren (Sicherheitsbedenken): Wenn Sie PHP 5.6.5 oder höher verwenden und eine SOAP 1.2-Verbindung herstellen, kann das Problem durch Hinzufügen von SSL-Parametern zum Client-Konstruktor behoben werden:
<code class="php">$opts = array(
    'ssl' => array(
        'ciphers' => 'RC4-SHA',
        'verify_peer' => false,
        'verify_peer_name' => false
    )
);

$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)
);

$wsdlUrl = $url . '?WSDL';
$oSoapClient = new SoapClient($wsdlUrl, $params);</code>
Nach dem Login kopieren

Hinweis: Das Deaktivieren der SSL-Überprüfung stellt ein Sicherheitsrisiko dar und sollte nicht in Produktionsumgebungen verwendet werden.

  1. Überprüfen Sie das WSDL-Dateiformat: Stellen Sie sicher, dass die WSDL-Datei ein gültiges XML-Dokument ist, das konform ist die WSDL-Spezifikation.
  2. Überprüfen Sie die Netzwerkkonnektivität:Stellen Sie sicher, dass der SOAP-Client Netzwerkzugriff auf den Server hat, der die WSDL-Datei hostet.
  3. Erwägen Sie die Verwendung von WSDL-Datei-Caching : Durch die Aktivierung des WSDL-Datei-Cachings in PHP können wiederholte Downloads verhindert und die Leistung verbessert werden:
<code class="php">ini_set("soap.wsdl_cache_enabled", "1");
ini_set("soap.wsdl_cache_ttl", "86400"); // 24 hours</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum schlägt meine PHP-SOAP-Verbindung mit „SOAP-FEHLER: Parsen von WSDL: Laden von [URL] konnte nicht erfolgen: Laden der externen Entität [URL] ist fehlgeschlagen' fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage