Salut tout le monde,

Je développe une application qui appel des services web et j'affiche le résultat. Je ne sais pas si ma méthodologie est bien ou non de plus j'ai un petit souci de récupération de résultat dans certain service web un peu compliqué a parsé.

j'ai crée une méthode qui retourne un vecteur qui contient les résultats.
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
 
public static Vector CallWS_listWorkitem (String nom)
	{
		Vector<String> rs =  new Vector<String> ();
 
		try {
			// Create SOAP request
 
			SoapObject request = new SoapObject(NAMESPACE,"Zmafonctionsws6");
			request.addProperty("Nom", nom);
			request.addProperty("WiId", "");
			request.addProperty("WiType", "");
			request.addProperty("WiCreator", "");
			request.addProperty("WiLang", "");
			request.addProperty("WiText", "");
			request.addProperty("WiRhtext", "");
			request.addProperty("WiCd", "");
			request.addProperty("WiCt", "");
			request.addProperty("WiAagent", "");
			request.addProperty("WiChckwi", "");
			request.addProperty("WiRhTask", "");
			request.addProperty("WiPrio", "");
			request.addProperty("WiConfirm", "");
			request.addProperty("WiReject", "");
			request.addProperty("WiForwBy", "");
			request.addProperty("WiDisable", "");
			request.addProperty("Statustext", "");
			request.addProperty("WiStat", "");
			request.addProperty("WiLed", "");
			request.addProperty("WiLet", "");
			request.addProperty("Typetext", "");
			request.addProperty("Tclass", "");
			request.addProperty("NoteExist", "");
			request.addProperty("WiDhStat", "");
			request.addProperty("Dhstatext", "");
			request.addProperty("NoExecute", "");
			request.addProperty("WiRelease", "");
			request.addProperty("WiCdFtd", "");
			request.addProperty("WiCtFtd", "");
			request.addProperty("WiLedFtd", "");
			request.addProperty("WiLetFtd", "");
			request.addProperty("WiAaName", "");
			request.addProperty("DefGuid", "");
			request.addProperty("WiCrtts", "");
			request.addProperty("NoteCount", "");
			request.addProperty("WiCompEv", "");
			request.addProperty("Proccat", "");
 
 
			SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
			envelope.setOutputSoapObject(request);
			HttpTransportSE androidHttpTransport = new HttpTransportSE(URL2);
			androidHttpTransport.call(SOAP_ACTION2, envelope);
			SoapObject body = (SoapObject)envelope.bodyIn;
			SoapObject sous_body = (SoapObject) body.getProperty("WkList");
			SoapObject sous_body_item = (SoapObject) body.getProperty("item");
 
			rs.addElement((String)sous_body_item.getProperty("WiText").toString());
		}
		catch (Exception e) {
			e.printStackTrace();
		}
 
 
		return rs;
	}
je me suis basé pour la création de la demande et le parsing de la réponse sur le fichier xml 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
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
 
<soapenv:Body>
      <urn:Zmafonctionsws6>
         <Nom>?</Nom>
         <!--Optional:-->
         <WkList>
            <!--Zero or more repetitions:-->
            <item>
               <WiId>?</WiId>
               <WiType>?</WiType>
               <WiCreator>?</WiCreator>
               <WiLang>?</WiLang>
               <WiText>?</WiText>
               <WiRhtext>?</WiRhtext>
               <WiCd>?</WiCd>
               <WiCt>?</WiCt>
               <WiAagent>?</WiAagent>
               <WiChckwi>?</WiChckwi>
               <WiRhTask>?</WiRhTask>
               <WiPrio>?</WiPrio>
               <WiConfirm>?</WiConfirm>
               <WiReject>?</WiReject>
               <WiForwBy>?</WiForwBy>
               <WiDisable>?</WiDisable>
               <Statustext>?</Statustext>
               <WiStat>?</WiStat>
               <WiLed>?</WiLed>
               <WiLet>?</WiLet>
               <Typetext>?</Typetext>
               <Tclass>?</Tclass>
               <NoteExist>?</NoteExist>
               <WiDhStat>?</WiDhStat>
               <Dhstatext>?</Dhstatext>
               <NoExecute>?</NoExecute>
               <WiRelease>?</WiRelease>
               <WiCdFtd>?</WiCdFtd>
               <WiCtFtd>?</WiCtFtd>
               <WiLedFtd>?</WiLedFtd>
               <WiLetFtd>?</WiLetFtd>
               <WiAaName>?</WiAaName>
               <DefGuid>?</DefGuid>
               <WiCrtts>?</WiCrtts>
               <NoteCount>?</NoteCount>
               <WiCompEv>?</WiCompEv>
               <Proccat>?</Proccat>
            </item>
         </WkList>
      </urn:Zmafonctionsws6>
   </soapenv:Body>
après j'ai appelé la méthode mais une erreur de type :

ERROR/AndroidRuntime(297): java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0

Finalement ma question est ce que la construction de la demande SoapObject est correcte suivant le fichier XML et ce que c'est judicieux d'utilisé comme type retour vector ou je doit choisir un autre type

merci,