Bonjour
je vous contacte a propos d'un problème qui me soule depuis 5 jours la et je l'ai pas encore résolu;
mon problème c'est d'utiliser un web service qui existe déjà et l'appeler depuis mon appli Android,
en faite je suis en stage et la méthode pour utiliser un web service ici à la société il faut se connecter avant à un web service qui s'appelle wsclient (authentification) et on devra récupérer le token et après on attaque le web service wsclient;
bon j'ai cherché partout sur internet et j'ai fais un truc qui me sort ça:
et moi je devrais sortir un truc comme ça:Code:
1
2
3
4
5
6
7
8
9
10
11 <v:Envelope xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:d="http://www.w3.org/2001/XMLSchema" xmlns:c="http://schemas.xmlsoap.org/soap/encoding/" xmlns:v="http://schemas.xmlsoap.org/soap/envelope/"> <v:Header /> <v:Body> <n0:generateToken id="o0" c:root="1" xmlns:n0="http://www.monsite.fr/webservices/"> <accesBean i:type="n0:accesBean"> <ConversationId i:type="d:string">id x</ConversationId> <ClientID i:type="d:string">monlogin</ClientID> <AccessKey i:type="d:string">monmotdepasse</AccessKey> </accesBean> </n0:generateToken> </v:Body></v:Envelope>
si vous remarquez bien dans le premier code il y a n0 qui précéde generateToken c'est elle qui fait que le code n'est pas authentique à l'autre code;Code:
1
2
3
4
5
6
7
8
9
10
11
12 <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <generateToken xmlns="http://www.monsite.fr/webservices/"> <accesBean> <ConversationId>id x</ConversationId> <ClientID>monlogin</ClientID> <AccessKey>monmotdepasse</AccessKey> </accesBean> </generateToken> </soap:Body> </soap:Envelope>
la solution que je cherche, une expression qui enlevé le n0 de genererToken ou bien l'ajouter dans les autres balises; voila mon code :
Code:
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 package test.webservice; import org.ksoap2.SoapEnvelope; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.HttpTransportSE; import android.app.Activity; import android.os.Bundle; import android.util.Log; public class TestwebserviceActivity extends Activity { private String METHOD_NAME = "generateToken"; private String NAMESPACE = "http://monsite.fr/webservices/"; private String SOAP_ACTION = "http://monsite.fr/webservices/generateToken"; private static final String URL = "http://adresseip:8080/WSAcces.asmx"; public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); try { SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); SoapObject accesBean=new SoapObject(NAMESPACE, "accesBean"); accesBean.addProperty("ConversationId", "9e2b992670-32e4-452c-952f-e2a8bb1Fd39b68f88888c"); accesBean.addProperty("ClientID", "monlogin"); accesBean.addProperty("AccessKey", "monmotdepasse"); request.addProperty("accesBean", accesBean); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.setOutputSoapObject(request); HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); //androidHttpTransport.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); androidHttpTransport.call(SOAP_ACTION,envelope); //Log.i("reponse: ",envelope.getResponse().toString()); SoapObject so = (SoapObject)envelope.bodyIn; SoapObject soap = (SoapObject) so.getProperty(0); Log.i("token_log","counter: "+ so.getPropertyCount()); Log.i("token_log","token xxx: "+ soap.getProperty(0).toString()); } catch (Exception E) { Log.e("token_log","errrrrreur "+E.getMessage()); E.printStackTrace(); } } }