Ich brauche diesen Knoten in meiner SOAP-Anforderung haben (mit 1.1):So definieren Sie einen SoapVar-Namespace?
<CredentialsHeader xmlns="http://www.url.com/Services/P24ListingService11"
<EMail>[email protected]</EMail>
<Password>password</Password>
</CredentialsHeader>
So habe ich die folgende PHP:
$client = new SoapClient("https://exdev.www.example.com/Services/example.asmx?WSDL",
array(
"trace" => 1,
"exceptions" => 0,
"cache_wsdl" => 0,
'soap_version' => SOAP_1_1
)
);
$CredentialObject = new SoapVar(array('EMail' => '[email protected]', 'Password' => 'password'), SOAP_ENC_OBJECT);
Welche erzeugt:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.example.com/Services/Example">
<SOAP-ENV:Header>
<ns1:CredentialsHeader>
<EMail>[email protected]</EMail>
<Password>password</Password>
</ns1:CredentialsHeader>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:EchoAuthenticated/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Alles, was ich zu tun ist, es zu verhindern mit ns1
und tatsächlich definieren die xmlns
in dem Knoten wie folgt:
Ich habe das in Firefox Poster getestet und weiß für eine Tatsache, dass die Änderung das Problem behebt.
Nicht das schönste, aber es hat funktioniert! Vielen Dank – rickyduck