Bonjour,

Actuellement j'ai développé un client utilisant les Web Services via SOAP. Ce client envoie des requêtes vers un serveur Web dont je ne suis pas le développeur.

Ayant rencontré pas mal de soucis de différences entre la structure des informations renvoyés par le Serveur et celles définies dans mon client (), j'aimerais logger le message de réponse (SOAP Attachment) retournée par le serveur suite à ma requête.

Je ne vois pas du tout comment réaliser cela de manière simple et efficace. Quels composants utiliser ? Auriez-vous un exemple de code permettant de faire ceci ?

Voici le code d'envoi d'un requête au WebServer:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
function GetIngestWS_PortType(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): IngestWS_PortType;
const
  defWSDL = 'F:\WSDL\scIngest.wsdl IngestWS.xml';
  defURL  = 'http://XXX.XXX.X.XX:5555/ws/scIngest.wsdl:IngestWS';
  defSvc  = 'IngestWS';
  defPrt  = 'scIngest_wsdl_IngestWS_Port';
var
  RIO: THTTPRIO;
begin
  Result := nil;
  if (Addr = '') then
  begin
    if UseWSDL then
      Addr := defWSDL
    else
      Addr := defURL;
  end;
  if HTTPRIO = nil then
  begin
    RIO := THTTPRIO.Create(nil);
    RIO.HTTPWebNode.UserName := FormManageActionServer.INI_SERVER_USER;
    RIO.HTTPWebNode.Password := FormManageActionServer.INI_SERVER_PWD;
  end
  else
  begin
    RIO := HTTPRIO;
  end;
  try
    Result := (RIO as IngestWS_PortType);
    if UseWSDL then
    begin
      RIO.WSDLLocation := Addr;
      RIO.Service := defSvc;
      RIO.Port := defPrt;
    end else
      RIO.URL := Addr;
  finally
    if (Result = nil) and (HTTPRIO = nil) then
      RIO.Free;
  end;
end;
Merci d'avance pour vos réponses