Bonjour

Je suis en train d'essayer d'exécuter un web service fourni par un tiers
Je suis en Delphi 7
J'ai donc importé le WSDL avec l'importateur de wsdl

J'ai obtenu l'unité soap suivante :

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
// ************************************************************************ //
// Les types déclaré dans ce fichier ont été générés à partir de données lues dans le fichier
// WSDL décrit ci-dessous :
// WSDL     : <a href="http://sage-app-1000/sfi/server/soap.l1000?wsdl=AC_API_Local" target="_blank">http://sage-app-1000/sfi/server/soap...l=AC_API_Local</a>
// Encodage : utf-8
// Version  : 1.0
// (22/02/2013 11:25:41 - 1.33.2.5)
// ************************************************************************ //
 
unit soap;
 
interface
 
uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;
 
type
 
  // ************************************************************************ //
  // Les types suivants mentionnés dans le document WSDL ne sont pas représentés
  // dans ce fichier. Ce sont soit des alias[@] de types représentés ou alors ils sont 
  // référencés mais jamais[!] déclarés dans ce document. Les types de la dernière catégorie
  // sont en principe mappés à des types Borland ou XML prédéfinis/connus. Toutefois, ils peuvent aussi
  // signaler des documents WSDL incorrects n'ayant pas réussi à déclarer ou importer un type de schéma.
  // ************************************************************************ //
  // !:string          - "http://www.w3.org/2001/XMLSchema"
  // !:date            - "http://www.w3.org/2001/XMLSchema"
 
  SessionHeader        = class;                 { "http://www.sage.com/fr/line1000/AC_API_Local"[H] }
  AC_CLIENT            = class;                 { "http://www.sage.com/fr/line1000/AC_API_Local" }
 
 
 
  // ************************************************************************ //
  // Espace de nommage : <a href="http://www.sage.com/fr/line1000/AC_API_Local" target="_blank">http://www.sage.com/fr/line1000/AC_API_Local</a>
  // ************************************************************************ //
  SessionHeader = class(TSOAPHeader)
  private
    FsessionId: WideString;
  published
    property sessionId: WideString read FsessionId write FsessionId;
  end;
 
 
 
  // ************************************************************************ //
  // Espace de nommage : <a href="http://www.sage.com/fr/line1000/AC_API_Local" target="_blank">http://www.sage.com/fr/line1000/AC_API_Local</a>
  // ************************************************************************ //
  AC_CLIENT = class(TRemotable)
  private
    FAssujetiTVA: WideString;
    Fcapital: WideString;
    FciviteInterlocuteur: WideString;
    FcleRib: WideString;
    Fcode: WideString;
    FcodeAPE: WideString;
    FcodeBanque: WideString;
    FcodeBicAgence: WideString;
    FcodeEtablissement: WideString;
    FcodeFormeJuridique: WideString;
    FcodeGuichetAgence: WideString;
    FCodePostal: WideString;
    Fcodesite: WideString;
    Fcomplement: WideString;
    FCRUD: WideString;
    FdateAdhesion: TXSDate;
    FdeviseBanque: WideString;
    Fdistribution: WideString;
    FdomiciliationBancaire: WideString;
    Femail: WideString;
    FimmatriculationRCS: WideString;
    Flangue: WideString;
    Flibelle: WideString;
    FlibelleBanque: WideString;
    FlibelleFormeJuridique: WideString;
    Flibellesite: WideString;
    FmodeEcheanceDecaissement: WideString;
    FmodeEcheanceEncaissement: WideString;
    FmodeReglementDecaissement: WideString;
    FmodeReglementEncaissement: WideString;
    FnomInterlocuteur: WideString;
    FnomRueVoie: WideString;
    FnumeroCompte: WideString;
    FnumeroTVA: WideString;
    FPays: WideString;
    FprenomInterlocuteur: WideString;
    FraisonSociale: WideString;
    FSIRET: WideString;
    FsiteInternet: WideString;
    FstructureCompte: WideString;
    Ftelecopie: WideString;
    Ftelephone1: WideString;
    Ftelephone2: WideString;
    Fterritorialite: WideString;
    FtypeAcceptation: WideString;
    FTypePersonne: WideString;
    Fville: WideString;
  public
    destructor Destroy; override;
  published
    property AssujetiTVA: WideString read FAssujetiTVA write FAssujetiTVA;
    property capital: WideString read Fcapital write Fcapital;
    property civiteInterlocuteur: WideString read FciviteInterlocuteur write FciviteInterlocuteur;
    property cleRib: WideString read FcleRib write FcleRib;
    property code: WideString read Fcode write Fcode;
    property codeAPE: WideString read FcodeAPE write FcodeAPE;
    property codeBanque: WideString read FcodeBanque write FcodeBanque;
    property codeBicAgence: WideString read FcodeBicAgence write FcodeBicAgence;
    property codeEtablissement: WideString read FcodeEtablissement write FcodeEtablissement;
    property codeFormeJuridique: WideString read FcodeFormeJuridique write FcodeFormeJuridique;
    property codeGuichetAgence: WideString read FcodeGuichetAgence write FcodeGuichetAgence;
    property CodePostal: WideString read FCodePostal write FCodePostal;
    property codesite: WideString read Fcodesite write Fcodesite;
    property complement: WideString read Fcomplement write Fcomplement;
    property CRUD: WideString read FCRUD write FCRUD;
    property dateAdhesion: TXSDate read FdateAdhesion write FdateAdhesion;
    property deviseBanque: WideString read FdeviseBanque write FdeviseBanque;
    property distribution: WideString read Fdistribution write Fdistribution;
    property domiciliationBancaire: WideString read FdomiciliationBancaire write FdomiciliationBancaire;
    property email: WideString read Femail write Femail;
    property immatriculationRCS: WideString read FimmatriculationRCS write FimmatriculationRCS;
    property langue: WideString read Flangue write Flangue;
    property libelle: WideString read Flibelle write Flibelle;
    property libelleBanque: WideString read FlibelleBanque write FlibelleBanque;
    property libelleFormeJuridique: WideString read FlibelleFormeJuridique write FlibelleFormeJuridique;
    property libellesite: WideString read Flibellesite write Flibellesite;
    property modeEcheanceDecaissement: WideString read FmodeEcheanceDecaissement write FmodeEcheanceDecaissement;
    property modeEcheanceEncaissement: WideString read FmodeEcheanceEncaissement write FmodeEcheanceEncaissement;
    property modeReglementDecaissement: WideString read FmodeReglementDecaissement write FmodeReglementDecaissement;
    property modeReglementEncaissement: WideString read FmodeReglementEncaissement write FmodeReglementEncaissement;
    property nomInterlocuteur: WideString read FnomInterlocuteur write FnomInterlocuteur;
    property nomRueVoie: WideString read FnomRueVoie write FnomRueVoie;
    property numeroCompte: WideString read FnumeroCompte write FnumeroCompte;
    property numeroTVA: WideString read FnumeroTVA write FnumeroTVA;
    property Pays: WideString read FPays write FPays;
    property prenomInterlocuteur: WideString read FprenomInterlocuteur write FprenomInterlocuteur;
    property raisonSociale: WideString read FraisonSociale write FraisonSociale;
    property SIRET: WideString read FSIRET write FSIRET;
    property siteInternet: WideString read FsiteInternet write FsiteInternet;
    property structureCompte: WideString read FstructureCompte write FstructureCompte;
    property telecopie: WideString read Ftelecopie write Ftelecopie;
    property telephone1: WideString read Ftelephone1 write Ftelephone1;
    property telephone2: WideString read Ftelephone2 write Ftelephone2;
    property territorialite: WideString read Fterritorialite write Fterritorialite;
    property typeAcceptation: WideString read FtypeAcceptation write FtypeAcceptation;
    property TypePersonne: WideString read FTypePersonne write FTypePersonne;
    property ville: WideString read Fville write Fville;
  end;
 
 
  // ************************************************************************ //
  // Espace de nommage : <a href="http://www.sage.com/fr/line1000/AC_API_Local" target="_blank">http://www.sage.com/fr/line1000/AC_API_Local</a>
  // soapAction : <a href="http://www.sage.com/fr/line1000/AC_API_Local/ImportClient" target="_blank">http://www.sage.com/fr/line1000/AC_A...l/ImportClient</a>
  // transport : <a href="http://schemas.xmlsoap.org/soap/http" target="_blank">http://schemas.xmlsoap.org/soap/http</a>
  // style     : document
  // liaison   : WS_ImportClientbinding
  // service   : WS_ImportClient
  // port      : WS_ImportClientPort
  // URL       : <a href="http://sage-app-1000:80/sfi/server/soap.l1000" target="_blank">http://sage-app-1000:80/sfi/server/soap.l1000</a>
  // ************************************************************************ //
  WS_ImportClientPortType = interface(IInvokable)
  ['{1CA29692-0091-5C5D-EF2A-9EE08BF5FC8C}']
    function  ImportClient(const client: AC_CLIENT): WideString; stdcall;
  end;
 
function GetWS_ImportClientPortType(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): WS_ImportClientPortType;
 
 
implementation
 
function GetWS_ImportClientPortType(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): WS_ImportClientPortType;
const
  defWSDL = 'http://sage-app-1000/sfi/server/soap.l1000?wsdl=AC_API_Local';
  defURL  = 'http://sage-app-1000:80/sfi/server/soap.l1000';
  defSvc  = 'WS_ImportClient';
  defPrt  = 'WS_ImportClientPort';
var
  RIO: THTTPRIO;
begin
  Result := nil;
  if (Addr = '') then
  begin
    if UseWSDL then
      Addr := defWSDL
    else
      Addr := defURL;
  end;
  if HTTPRIO = nil then
    RIO := THTTPRIO.Create(nil)
  else
    RIO := HTTPRIO;
  try
    Result := (RIO as WS_ImportClientPortType);
    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;
 
 
destructor AC_CLIENT.Destroy;
begin
  if Assigned(FdateAdhesion) then
    FdateAdhesion.Free;
  inherited Destroy;
end;
 
initialization
  InvRegistry.RegisterInterface(TypeInfo(WS_ImportClientPortType), 'http://www.sage.com/fr/line1000/AC_API_Local', 'utf-8');
  InvRegistry.RegisterDefaultSOAPAction(TypeInfo(WS_ImportClientPortType), 'http://www.sage.com/fr/line1000/AC_API_Local/ImportClient');
  InvRegistry.RegisterInvokeOptions(TypeInfo(WS_ImportClientPortType), ioDocument);
  InvRegistry.RegisterHeaderClass(TypeInfo(WS_ImportClientPortType), SessionHeader, 'SessionHeader', '');
  RemClassRegistry.RegisterXSClass(SessionHeader, 'http://www.sage.com/fr/line1000/AC_API_Local', 'SessionHeader');
  RemClassRegistry.RegisterXSClass(AC_CLIENT, 'http://www.sage.com/fr/line1000/AC_API_Local', 'AC_CLIENT');
 
end.

Ensuite j'appelle le web service par l'instruction :

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
procedure TForm1.Button2Click(Sender: TObject);
var Mon_AC_CLIENT : AC_CLIENT;
 
 
begin
  // Affectation des variables
  Mon_AC_CLIENT := AC_CLIENT.Create;
 
  Mon_AC_CLIENT.AssujetiTVA := ' ';
 
  // Appel du WS
 
  Memo1.text := GetWS_ImportClientPortType(true, '', nil).ImportClient(Mon_AC_CLIENT);
 
  ShowMessage('code retour := ' + Memo1.Text);
 
end;
et lors de l'appel j'obtiens l'erreur : Contenu reçu du paramètre de type de contenu incorrect : text/html - SOAP s'attend à "text/xml"

Quel est le problème ?

Merci d'avance pour vos réponses