PHP SoapClient schlägt mit - Failed to load external entity
Ich habe versucht, verwenden die Europäische Union-website zu überprüfen TIN-Nummern (Europa-ZINN-Validierung website - es ist eine WSDL an das Ende der Seite)
Das problem das ich habe ist, dass wenn ich versuche einen neuen zu machen SoapClient die Funktion nicht sofort beim erstellen des client. Zuerst hatte ich einen "Failed to load external entity" und ich nahm an, es war, weil die WSDL-hat eine sichere Verbindung. Nach der Suche rund fand ich einige Antworten, die sagte, dass das problem zu tun haben könnte mit dem Zertifikat als veraltet und die neuesten Versionen von PHP werfen Fehler in diesem Fall, also habe ich deaktiviert-Zertifikat Validierung:
//Stream context due to certificate problems
$streamContext = stream_context_create(array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
));
Aber jetzt bin ich immer noch ein Fehler: "failed to open stream: HTTP Request failed! HTTP/1.1 502 Bad Gateway". Irgendwelche Gedanken darüber, wie Sie dieses Problem lösen? Wenn ich entfernen Sie "https://" aus dem link, bekomme ich das gleiche Ergebnis wie zuvor mit dem "failed to load external entity" - Meldung.
Nun, hier ist die echte Gehirn-picker. Wenn ich versuche, mit chrome-Erweiterung "Boomerang" zu testen, die SOAP-Aufrufe auf WSDL-es funktioniert absolut perfekt, so habe ich keine Ahnung, was hier falsch... Jeder kann leicht versuchen dies, indem Sie versuchen, eine soap-aufrufen in einer PHP-Datei.
Hier ist der vollständige code:
public static function validateTIN($tin) {
//Stream context due to certificate problems
$streamContext = stream_context_create(array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
));
//Create our soap client
$client = new SoapClient('https://ec.europa.eu/taxation_customs/tin/checkTinService.wsdl', array(
'exceptions' => 0,
'trace' => 1,
'connection_timeout' => 1800,
'stream_context' => $streamContext
));
dd($client->__getFunctions());
return true;
}
Welche version von PHP ist das scheitern?
InformationsquelleAutor Tiago Magalhães | 2016-06-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nachdem Sie stundenlang Erforschung und versuchen, herauszufinden, das problem fand ich einen 2 Jahre alten Beitrag, der irgendwie diente meinem Zweck.
Kann ich leider nicht markieren Sie diese als doppelte so werde ich nur link gibt es hier: SOAP-Fehler beim Parsen der wsl konnte nicht geladen werden, aber funktioniert auf xampp
Konnte ich nicht finden, diese Frage, weil Google nicht tag es wie mit der Europa-Dienste.
Entweder Weg, mein problem war, dass ich brauchte, um anzugeben, mein user-agent explizit, weil Europa web-services sind auch veraltet und nicht lösen können IPv6-Anfragen, nur IPv4. Etwa so:
Verwendet das Beispiel die CheckVAT SOAP-Funktion, aber es funktioniert genauso gut für die CheckTIN Funktion.
InformationsquelleAutor Tiago Magalhães