Come creare una richiesta SOAP arbitraria usando PHP?

Sto avendo un problema relativo al SOAP in PHP. Sto provando a creare una richiesta SOAP arbitraria usando la class Nusoap_client. La richiesta completa comprese le intestazioni dovrebbe essere simile all'esempio seguente. Ovviamente i segnaposto (string) dovrebbero essere sostituiti con valori reali.

POST /services/RecipeCouponAPI11.asmx HTTP/1.1 Host: example.com Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://www.example.com/services/GetCouponAll" <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header> <RCAuthenticator xmlns="http://www.example.com/services/"> <UserName>string</UserName> <Password>string</Password> </RCAuthenticator> </soap:Header> <soap:Body> <GetCouponAll xmlns="http://www.example.com/services/"> <campaignCode>string</campaignCode> </GetCouponAll> </soap:Body> </soap:Envelope> 

Ho provato il seguente codice PHP senza fortuna. Sembra che la richiesta non sia stata formattata correttamente. Qualche idea su come get il suo lavoro?

 <?php $client = new Nusoap_client('http://www.example.com/services/RecipeCouponAPI11.asmx'); $headers = new SoapHeader( 'http://www.example.com/services/', 'RCAuthenticator', (object)arrays( 'UserName' => 'username', 'Password' => 'password' ), false ); $client->setHeaders(arrays($headers)); $response = $client->call( 'GetCouponAll', arrays('campaignCode' => 'campaigncode'), null, 'http://www.example.com/services/GetCouponAll' ); ?> 

Trovato una soluzione dopo tutto.

 <?php $client = new SoapClient('http://www.example.com/services/RecipeCouponAPI11.asmx?wsdl'); $header = new SoapHeader( 'http://www.example.com/services/', 'RCAuthenticator', arrays( 'UserName' => 'username', 'Password' => 'password' ) ); $client->__setSoapHeaders($header); $response = $client->GetCouponAll(arrays('campaignCode' => '')); ?>