JbWGY Posté(e) 7 mars 2011 Share Posté(e) 7 mars 2011 Bonjours à tous. En tant que bizut en dev Android, je me casse la tête sur de l'envoi du JSON vers un serveur depuis plusieurs heures sans trop savoir ce que je fais. J'ai trouvé de nombreux codes pour envoyer du JSON et en recevoir en retour (ce dont j'ai besoin), mais aucun d'eux ne fonctionne ou du moins je ne comprends pas pourquoi je ne reçois rien d'intéressant. Du coup, j'ai quelques questions : Est-il nécessaire de passer par des threads pour effectuer des envois ? Faut-il passer par une Map ou un JSONObject suffit pour envoyer les données ? Quel est l'intéret de passer une StringEntity ? Pas possible d'envoyer un JSON directement ? Comment récupérer le résultat en format String ou JSONObject quand je reçois un HttpResponse ? En faisant le getEntity().getContent() je suis censé retrouver le résultat ? Je suis un peu perdu car je n'ai pas le controle sur le serveur, il s'agit de réutiliser un code déjà fonctionnel pour une version iPhone. Voici le code pour mon envoi / reception : Thread t = new Thread(){ public void run() { Looper.prepare(); //For Preparing Message Pool for the child Thread HttpClient client = new DefaultHttpClient(); HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000); //Timeout Limit HttpResponse response; JSONObject json = new JSONObject(); try{ HttpPost post = new HttpPost("monUrl"); json.put("param1", "value1"); json.put("param2", "value2"); StringEntity se = new StringEntity("JSON: " + json.toString()); se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json")); post.setEntity(se); response = client.execute(post); /*Checking response */ if(response!=null){ InputStream in = response.getEntity().getContent(); //Get the data in the entity Log.i("Reponse", ""+response.getEntity().getContentLength()); } } catch(Exception e){ e.printStackTrace(); } Looper.loop(); //Loop in the message queue } }; t.start(); Merci d'avance si vous pouvez m'éclairer, la doc ne m'a pour l'instant pas beaucoup aidé, ni les autres topics sur le sujet sur le net ou sur ce forum Lien vers le commentaire Partager sur d’autres sites More sharing options...
JbWGY Posté(e) 7 mars 2011 Auteur Share Posté(e) 7 mars 2011 Solution trouvée, en fait comme un naze je ne passais pas de valeur en POST, je ne faisais qu'envoyer le JSON, du coup le traitement PHP ne pouvait rien comprendre. http://wiki.frandroid.com/wiki/Requête_HTTP_POST En ajoutant la liste des parametres, ca va tout de suite mieux ;) Mais j'aimerais bien savoir si le fait de passer par un thread est nécessaire ou pas ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Pierre87 Posté(e) 7 mars 2011 Share Posté(e) 7 mars 2011 utiliser un thread distinct du main/ui thread est INDISPENSABLE je te conseille d'utiliser une AsyncTask Lien vers le commentaire Partager sur d’autres sites More sharing options...
JbWGY Posté(e) 7 mars 2011 Auteur Share Posté(e) 7 mars 2011 utiliser un thread distinct du main/ui thread est INDISPENSABLE je te conseille d'utiliser une AsyncTask Merci pour ta remarque, je vais me pencher là dessus Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.