Ver Mensaje Individual
  #1  
Antiguo 15-05-2015
Revow Revow is offline
Miembro
NULL
 
Registrado: may 2013
Posts: 10
Reputación: 0
Revow Va por buen camino
Unhappy Incluir Headers de SOAP en web services Delphi 2010

Hola club, el día de hoy tengo un problema al consumir un web service, les platico el problema.

Estoy trabajando con Delphi 2010, creando una aplicación que consume un web service, ya importe el WSDL desde la opción "WSDL Importer" de Delphi, En la definición del WSDL viene la especificación de un Header (AuthHeader) el cual ya definí con sus dos parametros username y password y hasta ahí todo bien, el problema es que vienen otras cabeceras que NO están definidas en el WSDL y que en la documentación del web service me indican que debo crear las clases para poder enviarlas desde SOAPHeaders y al no estar definidas en el WSDL por consiguiente no han sido importadas y declaradas.

Mi pregunta es ¿como debo crear estas clases tomado como base el SOAP que anexo? o ¿por donde debo buscar para poder agregar las cabeceras con sus respectivos atributos?

Anexo SOAP que ya probé y funciona sin ningún problema desde el programa SOAPUi en el podrán identificar el nodo Security y sus nodos Usernametoken y Timestamp; esas cabeceras son las que me falta definir en Delphi.

Nota modifica las URL porque aun no tengo permisos para enviar enlaces

Código PHP:
<soapenv:Envelope xmlns:soapenv="ht/schemas.xmlsoap.org/soap/envelope/" xmlns:slm="ht://schemas">
  <
soapenv:Header>
     <
slm:AuthHeader>
        <
slm:Username>userAuth</slm:Username>
        <
slm:Password>passAuth</slm:Password>
     </
slm:AuthHeader>
     <
wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="ht/docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="ht/docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
        <
wsu:Timestamp wsu:Id="TS-12">
            <
wsu:Created>2015-05-14T21:03:00.172</wsu:Created>
            <
wsu:Expires>2015-05-14T21:59:00.172</wsu:Expires>
        </
wsu:Timestamp>
        <
wsse:UsernameToken wsu:Id="UsernameToken-4">
           <
wsse:Username>usertoken</wsse:Username>
           <
wsse:Password Type="ht/docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">passtoken</wsse:Password>
           <
wsse:Nonce EncodingType="ht/docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">V33AMPBA==</wsse:Nonce>
           <
wsu:Created>2012-03-27T20:24:39.172Z</wsu:Created>
        </
wsse:UsernameToken>
     </
wsse:Security>
  </
soapenv:Header>
   <
soapenv:Body>
      <
slm:GetL>
         <
slm:Lead>9</slm:Lead>
      </
slm:GetL>
   </
soapenv:Body>
</
soapenv:Envelope
De antemano muchas gracias y saludos

Última edición por Casimiro Notevi fecha: 15-05-2015 a las 09:24:23.
Responder Con Cita