Einzelnen Beitrag anzeigen
  #1  
Alt 12.02.2016, 14:00:39
lupo72 lupo72 ist offline
Anfänger
 
Registriert seit: Feb 2016
Alter: 46
Beiträge: 2
lupo72 befindet sich auf einem aufstrebenden Ast
SoapClient mit Authorization Basic Header

Ich muss einen SoapClient zu einem Webservice mit Anmeldedaten erstellen.

Der Server verlangt das die Authentfizierung per Header Authorization Basic mitgeschickt wird - mit SoapUI bekomme ich die Connection indem ich die Authorization "basic" mit angebe wie kann ich das in PHP nachbauen?

Dieser Header wird verlangt - so schickt ihn SoapUI

POST http://aktuell.kundeninformation.net/api/soap/v6 HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: ""
Content-Length: 302
Host: aktuell.kundeninformation.net
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
Authorization: Basic [user&pass-base64-encoded]

So sieht mein Code momentan aus - ich versuche die Authorisierung per SoapHeader zu setzen

$namespace = "http://ecircle.com/developer/ecmapi";
$wsdl = "https://sslh.teradatadmc.com/teradata/api/soap/v6?wsdl";
$client = new SoapClient($wsdl, array("trace" => 1, "exceptions" => 0));
$login = 'xxx';
$password = 'yyy';
$header = new SoapHeader($namespace, 'Authorization: Basic', base64_encode($login. ':' $password));
$client->__setSoapHeaders($header);


Der Server lehnt die Verbindung mit Error 401 Unauthorized ab

Laut Stacktrace wird auch lediglich dieser Header empfangen:

public '__last_request_headers' => string 'POST /api/soap/v6 HTTP/1.1
Host: aktuell.kundeninformation.net
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.5.12
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
Content-Length: 584

Kann mir jemand einen Hinweis geben, wie ich dem SoapClient einen Authorization Basic Header voranstellen kann?
Mit Zitat antworten