Bonjour.


En RPGLE, via le *SRVPGM QAXIS10CC, je consomme facilement des services web dont le contenu est une simple Enveloppe avec un body qui contient du XML ou du JSON.
Par contre, je suis confronté à des services web dont le contenu est "Content-Type: multipart/related", avec une partie contenant une enveloppe et un body contenant un flux XML, et une autre partie contenant une image encodée.


Voici la réponse en RAW de l'appel via SOAP UI (l'image encodée n'apparait pas en fin de message, mais elle est bien là, au niveau de "PNG") :

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

HTTP/1.1 200 OK 
Set-Cookie: JSESSIONID=86DAD2E7C78F222727689EBDB8339458; Path=/ivy/; HttpOnly 
Content-Type: multipart/related; type="application/xop+xml"; boundary="uuid:3323db48-352f-40cf-a2e8-2ed1fb8f7150"; start="<root.message@cxf.apache.org>"; start-info="text/xml" 
Transfer-Encoding: chunked 
Date: Fri, 28 Jun 2019 13:58:47 GMT 
Connection: close 
Server: - 




--uuid:3323db48-352f-40cf-a2e8-2ed1fb8f7150 
Content-Type: application/xop+xml; charset=UTF-8; type="text/xml"; 
Content-Transfer-Encoding: binary 
Content-ID: <root.message@cxf.apache.org> 


<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body>...</soap:Body></soap:Envelope> 
--uuid:3323db48-352f-40cf-a2e8-2ed1fb8f7150 
Content-Type: application/octet-stream 
Content-Transfer-Encoding: binary 
Content-ID: <a33ce0a8-7516-4462-a784-3f1810218051-96@cxf.apache.org> 


‰PNG

Lorsque je consomme ce type de service, toute la préparation de la conversation HTTP se déroule bien jusqu'au "axiscTransportFlush", puis lorsque je fais le "axiscTransportReceive", le programme boucle un petit moment (de 30 secondes à 3 minutes) pour finalement me renvoyer un retour -1 et m'indiquer une erreur lors de la réception des données (HTTPTransportException - SERVER_TRANSPORT_INPUT_STREAMING_ERROR: Error is 3426 - A connection with a remote socket was reset by that socket). Bien-entendu, via SOAP UI, pas de problème, le service fonctionne bien.


La variable dans laquelle je reçois la réponse est du caractère : est-ce que c'est le type du champ qui bloque la réception de la réponse avec l'image encodée ? Si oui, quel type de donnée dois-je utiliser ?


Sinon, comment puis-je faire pour indiquer que seule la partie XML m'intéresse, pas le 2ème boundary avec l'image ?


Merci pour vos conseils.