Bonjour
j'ai récupéré la wsdl d'un serveur de webservices avec lequel je dois communiquer
pour faire simple je récupère ...
en appelant MaFonction le seveur attend que je lui envoie le flux SOAP suivant
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 ArrayOfString = array of WideString; ArrayOfClasse = array of MaClasse; MaClasse= class(TRemotable) private Fchaine1: WideString; Fchaine2: WideString; published property chaine1: WideString read Fchaine1 write Fchaine1; property chaine2: WideString read Fchaine2 write Fchaine2; end; MaClasse1 = class(TRemotable) private FMonArrayOfString: ArrayOfString; FMonArrayOfClasse: ArrayOfClasse; public destructor Destroy; override; published property MonArrayOfString: ArrayOfString read FMonArrayOfString write FMonArrayOfString; property MonArrayOfClasse: ArrayOfClasse read FMonArrayOfClasse write FMonArrayOfClasse; end; function MaFonction(const MC: MaClasse1): Boolean; stdcall;
Code xml : 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 <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <MaFonction> <MC> <MonArrayOfString> <string>string</string> <string>string</string> </MonArrayOfString> <MonArrayOfClasse> <MaClasse> <chaine1>string</chaine1> <chaine2>string</chaine2> </MaClasse> <MaClasse> <chaine1>string</chaine1> <chaine2>string</chaine2> </MaClasse> </MonArrayOfClasse> </MC> </MaFonction> </soap:Body> </soap:Envelope>
or dès que je dois envoyer des "array of ..." le nom de la classe est remplacé par "item" ... je pense que cela doit pourvoir se corriger en jouant sur des options du Converter du composant THTTPRIO ou
RemClassRegistry.RegisterSerializeOptions(TypeInfo(ArrayOfString), [xoInlineArrays]) mais ça ne fonctionne pas ...
Est ce que quelqu'un a déjà été confronté à ce problème et sait comment le résoudre
Merci d'avance pour votre aide
Partager