Klasse til at overskrive (skal blive til den øverste header):
if (!class_exists("XSoapClient")) {
class XSoapClient extends SoapClient {
public function __doRequest($request, $location, $saction, $version, $one_way = 0) {
echo $request." request<br>";
echo $location." location<br>";
echo $saction." action<br>";
$aReplace = array('xmlns:ns1', 'xmlns:ns2');
$aReplaceTo = array('xmlns:pho', 'xmlns:tem');
//$dom = new DOMDocument();
$request = str_replace($aReplace, $aReplaceTo, $request);
//$dom->loadXML($request);
//echo $request;
return parent::__doRequest($request, $location, $saction, $version, $one_way = 0);
}
}
}
$ns = URL til security
ApplicationHeader = Header til security
$tBodyXML = array der skal ind i XML
$objVar_Session_Inside = new SoapVar($this->ApplicationHeader(), XSD_ANYXML, null, null, null);
$actionHeader = new SoapHeader($ns, 'Security', $objVar_Session_Inside, false);
$this->oClient->__setSoapHeaders($actionHeader);
try {
$this->oResult = $this->oClient->RegisterApplication(array('application' => $tBodyXML));
} catch
Og i constructoren kalder jeg på denne funktion:
private function XWebServiceObject() {
try {
$this->oClient = new XSoapClient($this->tWSDL, $this->aOptions);
} catch (Exception $exception) {
$this->tError .= $exception->getMessage();
}
}
Kan det være som så at securityheaderen tager en ekstra header med og dermed overskriver den jeg allerede har overskrevet?