Einige SOAP-Aufrufe an eine Drittanbieteranwendung ausführen. Sie liefern diesen Soap-Header als ein Beispiel für das, was die Anwendung erwartet. Wie kann ich einen solchen SOAP-Header in PHP erstellen?Wie kann ich so einen Soap-Header erstellen?
<SOAP-ENV:Header>
<NS1:Security xsi:type="NS2:Security" xmlns:NS1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:NS2="urn:dkWSValueObjects">
<NS2:UsernameToken xsi:type="NS2:TUsernameToken">
<Username xsi:type="xsd:string">XXXX</Username>
<Password xsi:type="xsd:string">XXX</Password>
</NS2:UsernameToken>
</NS1:Security>
</SOAP-ENV:Header>
ich tue, was ich denke, ein richtiger Anruf und halte im Gegenzug bekommen, dass keine Header gesendet wurden.
Hier ist ein Beispiel aus meinem Code.
class SOAPStruct
{
function __construct($user, $pass)
{
$this->Username = $user;
$this->Password = $pass;
}
}
$client = new SoapClient("http://www.example.com/service");
$auth = new SOAPStruct("username", "password");
$header = new SoapHeader("http://example.com/service", "TUsernameToken", $auth);
$client->__setSoapHeaders(array($header));
$client->__soapCall("GetSubscriptionGroupTypes", array(), NULL, $header)
Und das ist der SOAP-Header, den ich zurückbekomme. (Seine mehr, aber ich gestrippt Informationen weg, die empfindlich sein könnte)
<SOAP-ENV:Header>
<ns2:TUsernameToken>
<Username>username</Username>
<Password>password</Password>
</ns2:TUsernameToken>
</SOAP-ENV:Header>
Gibt es keine PHP-Bibliotheken für die SOAP-Behandlung, die PHP-Objekte und Service-Schnittstellen aus der WSDL/XSD für den Web-Service generieren können? – JeeBee
Ich verwende die SOAPClient-Bibliothek in PHP. –