Bonjour à tous,

Comme dit dans le titre j'aimerais récupérer des données de plusieurs campus (pour commencer je n'en prends qu'un seul) à partir de la méthode Http GET sur un site que j'ai crée en local, depuis mon app Android.

Voici une méthode que j'ai crée dans cet objectif:

classe WebCampus:
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
public Campus convertToCampus(JSONObject object) throws JSONException{
 
		webManager = new WebServiceManager();
		webManager.sendGetRequest("http://10.0.2.2:8080/NoteTonSTA/rest/campuses/1");//tester url
 
		campus = new Campus();
 
		//récupération des attributs json de l'url
		try {
			campus.setName(object.getString("name"));
			campus.setId(object.getLong("id"));
 
		} catch (Exception e) {
			String tag = "WebCampusError";
			Log.e(tag , "impossible de parser les attributs: "+e.getMessage(),e);
		}
 
		return campus;//on retourne un objet campus
 
	}
Les données à récupérer sont de cette forme (en JSON):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
{"id":"1","name":"Lyon"}
Voici mon activity:
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
package com.supinfo.notetonsta;
 
import org.json.JSONException;
import org.json.JSONObject;
 
import com.supinfo.notetonsta.model.Campus;
import com.supinfo.notetonsta.web.WebCampus;
 
import android.app.Activity;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
import android.widget.ListView;
 
//main activity
public class NoteTonSTA2Activity extends Activity {
    /** Called when the activity is first created. */
 
	Campus campus;
 
	LinearLayout mainLayout;//layout principal
	ListView listView;//listView du main.xml
	ListAdapter la;
 
	JSONObject object;
	WebCampus webCampus;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        object = new JSONObject();
        webCampus = new WebCampus();
 
        try {
        	//on va lister tous les campus dans cette activity
			campus = webCampus.convertToCampus(object);
 
 
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
 
    }
 
    public void addCampus(){
 
    }
 
}
Et pour finir mon WebServiceManager pour la connexion:
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
package com.supinfo.notetonsta.util;
 
import java.net.URI;
 
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
 
import android.util.Log;
 
public class WebServiceManager {
 
	private String result;
	private HttpClient httpClient;
	private HttpGet httpGet;
	private URI uri;
 
	public String sendGetRequest(String address){
 
		result = null;
 
		try {
			httpClient = new DefaultHttpClient();
			httpGet = new HttpGet();
 
			uri = new URI(address);
			httpGet.setURI(uri);
 
			HttpResponse response = httpClient.execute(httpGet);//on execute la requête http
 
			result = EntityUtils.toString(response.getEntity());
 
		} catch (Exception e) {
			Log.e(address, "Connexion impossible, problème de droit ou de port deja utilise: "+e.getMessage(),e);
		}
 
		return result;
 
	}
 
	public WebServiceManager() {
 
	}
 
}
Le problème c'est que je lève l'exception suivante (logs):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
03-28 03:09:47.619: E/WebCampusError(5192): impossible de parser les attributs: No value for name
Mon objectif serait donc de récupérer l'attribut 'name' ainsi que l'attribut 'id' pour pouvoir ensuite les afficher. Quelqu'un aurait-il des idées à ce sujet?