Hola,
Tengo un problema al consumir un webservice de una empresa de transportes. Hay que llamar a un primer webservice para identificarte y te devuelve un id que debes mandar al segundo webservice dentro del <header> junto con los datos para dar de alta el envio.
He importado los wsdl con delphi tokyo y la cabecera está allí:
Código Delphi
[-] ROClientIDHeader = class;
.....
ROClientIDHeader = class(TSOAPHeader)
private
FID: string;
FID_Specified: boolean;
procedure SetID(Index: Integer; const Astring: string);
function ID_Specified(Index: Integer): boolean;
published
property ID: string Index (IS_OPTN) read FID write SetID stored ID_Specified;
end;
.....
procedure ROClientIDHeader.SetID(Index: Integer; const Astring: string);
begin
FID := Astring;
FID_Specified := True;
end;
function ROClientIDHeader.ID_Specified(Index: Integer): boolean;
begin
Result := FID_Specified;
end;
...
InvRegistry.RegisterHeaderClass(TypeInfo(WebServService), ROClientIDHeader, 'ROClientID', 'http://tempuri.org/');
Pero no sé como incluirla en el xml al hacer el envio.
Se está enviando:
Código:
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<WebServService___GrabaEnvio19 xmlns="http://tempuri.org/">
<strCodAgeCargo>099999</strCodAgeCargo>
<strCodAgeOri>099999</strCodAgeOri>
...
<strCodPuntoConveniencia/>
</WebServService___GrabaEnvio19>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
y deberia enviarlo con la cabecera:
Código:
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Header>
<ROClientIDHeader xmlns="http://tempuri.org/">
<ID>{xxxx-xxxxx-xxxxx-xxxx}</ID>
</ROClientIDHeader>
</soap:Header>
<SOAP-ENV:Body>
<WebServService___GrabaEnvio19 xmlns="http://tempuri.org/">
<strCodAgeCargo>099999</strCodAgeCargo>
<strCodAgeOri>099999</strCodAgeOri>
...
<strCodPuntoConveniencia/>
</WebServService___GrabaEnvio19>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
¿ Alguien podria ayudarme a incluir la cabecera en el XML ?
Muchas gracias