Magento SOAP-API - PHP-Exception geworfen für die login-Methode aufrufen: "looks like we got no XML document"
Habe ich Probleme, den Anschluss an die Magento SOAP-API über PHP SoapClient. Ich habe eine kleine test-PHP-Datei, die setup auf meinem dev-server mit dem folgenden code:
<?php
$soapC = new SoapClient('http://XXXX.com/api/soap/?wsdl', array('trace'=>true, 'exceptions'=>false));
$session = $soapC->__soapCall('login', array('TestUsr', 'test123'));
var_dump($session);
?>
Die PHP-Datei auf dem gleichen server wie mein magento dev-build. Wenn ich das php script über die Kommandozeile, die $session-variable Ausgänge ein SoapFault-Objekt mit einer Fehlermeldung, die sagt: "looks like we got no XML document".
Nicht sicher, wie diese zu lösen. Wenn ich versuche den code unten ich bin in der Lage, einen Druck aus aller API-Methoden, aber für einige Grund die login-Methode aufrufen, oben genannten Probleme verursacht.
$soapC = new SoapClient('http://XXXX.com/api/soap/?wsdl', array('trace'=>true, 'exceptions'=>false));
print_r($soapC->__getFunctions());
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser Fehler bedeutet in der Regel, dass das problem auf der server-Seite. Die server die Bearbeitung des Antrages ist nicht die Ausgabe gültiges XML ist. Überprüfen, dass keine Fehler oder Umleitungen auftreten.
Was passiert, wenn Sie besuchen Sie die server-Endpunkt in einem browser?
<soap:address location="http://example.com/server.php?v=1.0"/>
. Dies ist die URL, die Sie, benötigen zu besuchen. Wenn es noch keine Probleme, könnte poste einen link zu deiner WSDL?Erkannte ich, das Problem war, dass, wenn der server versucht, Zugriff auf die wsdl-Datei, Magento wurde die Erteilung einer 302-Weiterleitung zum Shop.
Um es zu beheben, ich loggte mich in das Magento admin-panel, navigiert zu System -> Konfiguration -> Web-und ausgeschaltet "Auto-redirect auf Basis URL". Funktioniert wie ein Charme jetzt.
Öffnen Sie Ihre php.ini Datei vom remote-server oder lokalen server, und legen Sie always_populate_raw_post_data zu -1.
Nach, dass Sie brauchen, um starten Sie Ihren Apache-server.
Einmal neu starten, getan haben, bitte führen Sie Ihr Skript erneut.