如何使用Header创建要在以下结构中发送的参数?
我使用php将值发送到.net
网络服务。我使用Boomerang扩展程序与Chrome一起工作正常;它以xml
作为响应打印成功。
我使用我的localhost尝试了以下内容:
<?php
try{
$client = new SoapClient("http://test");
$auth = "<x:Header><ts><id>?</id><Idcliente>?</Idcliente><fecha>?</fecha>
</ts><x:Header>";
$auth_block = new SoapVar( $auth, XSD_ANYXML, NULL, NULL, NULL, NULL );
class ServiceHeader{}
$serviceHeader = new ServiceHeader();
$serviceHeader->id = '?';
$serviceHeader->Idcliente = "?";
$serviceHeader->fecha = "?";
$header = new SoapHeader("http://test", "xxxx", $serviceHeader);
//$header = new SoapHeader( $ns, 'Header', $auth_block );
$client->__setSoapHeaders($header);
$params->Idcliente = '?';
$params->Idsolicitud = '?';
//etc
$result = $client->AddObject($params)->AddObjectResponse;
}
catch(SoapFault $e)
{
echo $e->getMessage();//Prints malformed petition from response
}
?>
这是Web服务期望收到的内容:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:tem="http://tempuri.org/"
xmlns:aon="http://schemas.datacontract.org/2004/07/Aon.Policy.Model"
xmlns:aon1=
"http://schemas.datacontract.org/2004/07/Aon.Policy.Model.Employee.Add">
<soapenv:Header>
<ts>{"id":"?TEST","IdCliente":"?TEST","fecha":"?TEST"} </ts>
</soapenv:Header>
<soapenv:Body>
<tem:AddObject>
<!--Optional:-->
<tem:request>
<aon:IdCliente>648</aon:IdCliente>
<aon:Fechamovimiento>2016-01-07T00:00:00-06:00</aon:Fechamovimiento>
<aon:Fechasolicitud>2016-01-07T00:00:00-06:00</aon:Fechasolicitud>
<aon:Idsolicitud>1</aon:Idsolicitud>
<!--Optional:-->
<aon1:employee>
<aon1:TEST1/>
<aon1:TEST2>0</aon1:TEST2>
<aon1:TEST3/>
<aon1:direccion>
<aon:colonia/>
<aon:numero/>
<aon:codigopostal/>
<aon:calle/>
</aon1:direccion>
<aon1:certificado>?</aon1:certificado>
<aon1:TEST4>?</aon1:TEST4>
<aon1:dependientes>
<!--Zero or more repetitions:-->
<aon:Dependiente>
<aon:certificado>?</aon:certificado>
<aon:Idcertificado>?</aon:Idcertificado>
<aon:TEST5>?</aon:TEST5>
<aon:genero>?</aon:genero>
<aon:TEST6>?</aon:TEST6>
<aon:apellido>?</aon:apellido>
<!--Optional:-->
<aon:segundoapellido>?</aon:segundoapellido>
<aon:nombre>?</aon:nombre>
</aon:Dependiente>
</aon1:dependientes>
<aon1:TEST7>?</aon1:TEST7>
<aon1:numerodearchivo>0</aon1:numerodearchivo>
<aon1:genero>0</aon1:genero>
<aon1:apellido>?</aon1:apellido>
<!--Optional:-->
<aon1:segundonombre/>
<aon1:correo/>
<aon1:estatusmatrimonial>?</aon1:estatusmatrimonial>
<aon1:nombre>?</aon1:nombre>
<aon1:Idpaquete>?</aon1:Idpaquete>
<aon1:telefono/>
<aon1:TEST8>?</aon1:TEST8>
</aon1:employee>
</tem:request>
</tem:AddObject>
</soapenv:Body>
</soapenv:Envelope>