Red de conocimiento informático - Material del sitio web - Cómo agregar campos en el encabezado HTTP de la llamada de la interfaz SOAP

Cómo agregar campos en el encabezado HTTP de la llamada de la interfaz SOAP

No hace falta decir que para agregar un encabezado SOAP en Delphi, consulte el ejemplo de Delphi, que se encuentra en el directorio Demos/WebServices/SOAPHeaders. Un ejemplo de cómo agregar campos de encabezado HTTP es el siguiente.

El archivo WSDL de muestra se describe a continuación:

SampleServiceSoap = class(IInvokable)

[' { 08323867-2307-4569-8405-4e 575 cc 3c 453 } ']

Procedimiento de muestra del proceso 1;

Proceso de muestra del procedimiento 2;

Fin;

Función GetSampleServiceSoap(use wsdl :Boolean; addr:string;HTTPRIO:THTTPRIO):sample de muestra;

Constante

def wsdl = ' http://127.0.0.1/sampleservice.asmx? WSDL ';

defURL = 'http://127.0.0.1/sampleservice.asmx';

defSvc = 'SampleService

defPrt = ' SampleServiceSoap

Definir variables

Rio:THTTPRIO

Inicio

Resultado:=cero;

if (Addr = "" ) Luego

Iniciar

Si usa WSDL, entonces

Addr:= defWSDL

Otro

addr: = de furl;

end;

Si HTTPRIO = nil, entonces

rio:=THTTPRIO. Crear(ninguno)

Otro

RIO:= HTTPRIO;

Probar

Resultado:=(RIO como SampleServiceSoap);

p>

Si usa WSDL, entonces

Inicie

Rio. ubicación wsdl:= Dirección;

Rio. Servicios:= defSvc

Rio. puerto:= def PRT;

Fin más

Rio. URL:= Dirección;

Último

Si (Resultado = nil) y (HTTPRIO = nil) entonces

Rio. Gratis;

Fin;

Fin;

El ejemplo de cómo agregar un encabezado HTTP es el siguiente:

Unidad unidad 1;

Conexión

Uso

Ventana, mensaje, sistema, variable, clase, gráficos, control, formulario,

Cuadro de diálogo, StdCtrls, SOAPHTTPTrans , SOAPHTTPClient, ActiveX

Tipo

TForm1 = clase(TForm)

botón 1:TButton;

Botón de programa 1Haga clic (remitente: objetar

Privado

El proceso antes de la Publicación (const http requersp: THTTPReqResp; datos: puntero

Público

); Fin;

Definir variables

formulario 1:t formulario 1;

Rendimiento

{$R *.

dfm}

//Agregue el campo CustomHeader en el encabezado http antes de enviar la solicitud.

// Los datos son un puntero al tipo HINTERNET.

Programa TForm1. antes de la publicación (const http requersp:THTTPReqResp;

datos: puntero);

Constante

csCustomHeader = ' encabezado personalizado:XXXXXXXX '

Inicio

HttpAddRequestHeaders(Datos, PChar(csCustomHeader), Longitud(csCustomHeader),

HTTP_ADDREQ_FLAG_ADD);

Fin;

p >

Programa TForm1. Button1Click(remitente:al objeto);

Definir variables

soap:SampleServiceSoap;

Rio:THTTPRIO

Iniciar

Inicialización total(ninguna);

Rio:= THTTPRIO. create(none);

Prueba

Rio. http webnode . OnBeforePost:= antes de la publicación;

soap:= GetSampleServiceSoap(False, ' http://127 . 0 . 0 . 1/sampleservice . asmx ', RIO >Si se asigna (Soap), entonces

Soap. procedimiento de muestra 1;

Finalmente

Rio. Gratis

Inicialización

Fin

Fin

Fin.