Cómo agregar campos en el encabezado HTTP de la llamada de la interfaz SOAP
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 p>
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>
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; p>
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.