Bonjour à tous,
Je reprends un projet débuté il y a quelques années pour mettre en oeuvre des améliorations. L'application est basée sur l'usage de HttpRio créé dynamiquement (sous Delphi Tokyo/VCL/Windows7).

Dans le code suivant,
fgetAllPhysicalIos et fgetAllPhysicalIosResponse sont déclarés et riServer2 est un serviceWeb crée à partir d'une entité WSDL.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
    fgetAllPhysicalIos := getAllPhysicalIos.create;
    try
      try
        (riServer2 as ISOAPHeaders).Send(riEnteteId);
        fgetAllPhysicalIosResponse := riServer2.getAllPhysicalIos (fgetAllPhysicalIos);
      except
        on E: EXMLDocError do
        begin
...
avec
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
 
getAllPhysicalIos = class(TRemotable)
  private
  public
    constructor Create; override;
  published
end;
 
getAllPhysicalIosResponse = class(TRemotable)
  private
    Fdata: MimeData;
  public
    constructor Create; override;
    destructor Destroy; override;
  published
    property data: MimeData  Index (IS_UNQL) read Fdata write Fdata;
end;
 
et
 
MimeData = class(TRemotable)
  private
    FcontentType: contentType;
    FcontentType_Specified: boolean;
    Fdata: TByteDynArray;
    procedure SetcontentType(Index: Integer; const AcontentType: contentType);
    function  contentType_Specified(Index: Integer): boolean;
  published
    property contentType: contentType    Index (IS_ATTR or IS_OPTN) read FcontentType write SetcontentType stored contentType_Specified;
    property data:        TByteDynArray  Index (IS_UNQL) read Fdata write Fdata;
end;
Au moment de l'appel de getAllPhysicalIos j'ai systématiquement le défaut
EXMLDocError : L'élément "data" ne contient pas un noeud texte unique alors que la réponse (stream) est correct et complète.

et une fuite mémoire liée à la non destruction certains objets (getPhysicalIoResponse et le Mimedata) :
Nom : SoapFuiteMemoire.PNG
Affichages : 374
Taille : 23,8 Ko

Je ne trouve pas de solution gérer le MimeData (probablement la cause du défaut et de la fuite mémoire).
Merci pour votre aide,