Bonjour,

J'ai développé une application pour Android et IOS.
Cette application appel un webservice SOAP pour récupérer des données.

Elle fonctionnait correctement sous Android il y a quelques temps et depuis les appels au webservice sous Android provoque des anomalies.
J'ai d'abord pensé à un problème d'encodage mais finalement ce n'est pas le cas. Les échanges se font en UTF8 et les accents sont bien encodés et décodés.
==> Content-type = text/xml; charset=utf-8

J'ai fini par déterminer les causes du souci, mais je ne les comprends pas et je n'arrive pas à les corriger.

Pour mieux comprendre, voici le détail des opérations.

Appel du webservice SOAP
Le webservice renvoi une réponse SOAP :
- Statut (Vrai / Faux)
- Message (Message d'information)
- Message technique (Message technique en cas d'erreur)
- Détails (Contient des tableaux d'objets)

Le statut et les messages sont bien récupérés (Simulateur, Android et IOS sont tous OK)

Nom : RESULTAT_50cd476fae1433dc30d874bcc327eed1.png
Affichages : 486
Taille : 75,0 Ko
Par contre, c'est au niveau du "Détails" que l'anomalie intervient.

EXTRAIT DE LA DESCRIPTION de l'objet DETAILS :
- EIS (tableau d'objet EI)
- LOTS (tableau d'objet LOT)
- ....

Les tableaux EIS et LOTS contiennent des objets EI et LOT.

Lorsque le tableau "EIS" ne contient qu'un seul objet EI :

> Contenu de EIS <
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
<EIS SOAP-ENC:arrayType="ns1:EI[1]" xsi:type="ns1:EIArray">
    <item xsi:type="ns1:EI">
       <CODE_EI xsi:type="xsd:string">000013</CODE_EI>
       <NOM xsi:type="xsd:string">L'été Indien</NOM>
       <RUE xsi:type="xsd:string">563, Route de Riottier</RUE>
       <LOCALITE xsi:type="xsd:string"/>
       <CP xsi:type="xsd:string">69400</CP>
       <VILLE xsi:type="xsd:string">VILLEFRANCHE SUR SAONE</VILLE>
       <TYPE xsi:type="xsd:string">1</TYPE>
       <DT_FIN xsi:nil="true"/>
    </item>
</EIS>

> Résultat <
- SIMULATEUR IOS : OK
- SIMULATEUR ANDROID : OK
- IOS : OK
- ANDROID : OK
> Capture <
Nom : EI1-ANDROID_3a79507a2fe8cad0fe90e39e85558caf.png
Affichages : 494
Taille : 77,9 Ko


Lorsque le tableau "EIS" contient plusieurs objets EI :

> Contenu de EIS <
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
24
25
26
27
28
29
30
31
32
<EIS SOAP-ENC:arrayType="ns1:EI[3]" xsi:type="ns1:EIArray">
  <item xsi:type="ns1:EI">
       <CODE_EI xsi:type="xsd:string">000015</CODE_EI>
       <NOM xsi:type="xsd:string">Héphémère</NOM>
       <RUE xsi:type="xsd:string">Rue Paul Claudel</RUE>
       <LOCALITE xsi:type="xsd:string"/>
       <CP xsi:type="xsd:string">69400</CP>
       <VILLE xsi:type="xsd:string">VILLEFRANCHE SUR SAONE</VILLE>
       <TYPE xsi:type="xsd:string">1</TYPE>
       <DT_FIN xsi:nil="true"/>
  </item>
  <item xsi:type="ns1:EI">
       <CODE_EI xsi:type="xsd:string">005066</CODE_EI>
       <NOM xsi:type="xsd:string">Grillés</NOM>
       <RUE xsi:type="xsd:string">Rue des Grillons</RUE>
       <LOCALITE xsi:type="xsd:string"/>
       <CP xsi:type="xsd:string">69400</CP>
       <VILLE xsi:type="xsd:string">GLEIZE</VILLE>
       <TYPE xsi:type="xsd:string">3</TYPE>
       <DT_FIN xsi:nil="true"/>
  </item>
  <item xsi:type="ns1:EI">
       <CODE_EI xsi:type="xsd:string">005246</CODE_EI>
       <NOM xsi:type="xsd:string">LES CORNALINES</NOM>
       <RUE xsi:type="xsd:string">343, Rue Montesquieu</RUE>
       <LOCALITE xsi:type="xsd:string"/>
       <CP xsi:type="xsd:string">69400</CP>
       <VILLE xsi:type="xsd:string">VILLEFRANCHE S/SAONE</VILLE>
       <TYPE xsi:type="xsd:string">3</TYPE>
       <DT_FIN xsi:nil="true"/>
  </item>
</EIS>

> Résultat <
- SIMULATEUR IOS : OK
- SIMULATEUR ANDROID : OK
- IOS : OK
- ANDROID : ERREUR
> Capture ANDROID <
Nom : EI3-ANDROID_55cea15cb1f9f0e3bee622cd362de5f0.png
Affichages : 418
Taille : 78,1 Ko

> Capture IOS / SIMULATEUR<
Nom : EIS3-SIMULATEUR_11c17368ecff82b4689073e782cc7552.png
Affichages : 535
Taille : 94,7 Ko


Finalement, dès que mes tableaux d'objet contiennent plus d'une occurrence, Android considère que le tableau ne contient qu'un objet et en plus il est vide.

Merci pour votre éclairage, je suis disponible si vous avez besoin d'informations complémentaires.