IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

[Requête Http] débutant cherche conseil


Sujet :

Android

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [Requête Http] débutant cherche conseil
    Bonjour à tous !

    Actuellement plein bad trip, concernant la réalisation d'un projet sur Android (certainement niveau Grande section de maternelle pour les expérimentés), j'ai décidé de faire appel à la communauté pour m'aider à trouver la lumière ...

    Issu du monde de l'exploitation de serveurs et de réseaux, il est vrai que mon expérience en développement est proche de 0.

    Aussi quand vient le moment de réaliser une application sur Android, c'est période de surchauffe cérébral assuré. Mais même pas peur, j'ai déjà connu ça par le passé, ça fait du bien aux méninges et quel bonheur quand soudain EURÊKA ça marche !!!!

    Sauf que là Eurêka n'est pas là !

    Alors je vous remercie par avance de vos conseils, indices, orientations qui pourront m'aider entrevoir le début du commencement d'une solution pour ce qui suit : ( Attention en mode neuneu, please)

    le but est de réaliser une application Android, qui affiche et met en forme les réponses a des requêtes Http.

    En gros, mon appli lance une requête http://monadresse.com/authentification/user/mdp et le serveur me répond "OK"

    Ce serveur existe déjà et est opérationnel, une fois l'authentification réussi, il est possible de d'interroger le serveur grâce a d'autres requête Http.

    http://monadresse.com/actions et le serveur retourne une liste d'actions possibles, l'objectif étant juste de les afficher et de les mettre en forme.

    Peut être faut il utiliser du JSON afin de pouvoir traiter le résultat de la requête ?

    J'ai bien sûr réaliser pas mal de recherche et notamment la partie "requêtes Http" du tuto Androïde, mais ça ne percute pas.

    Je me doute qu'il doit falloir utiliser quelque chose comme (ou pas):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    URL url = new URL("http://monadresse.com/user/mdp");
    URLConnection urlConnection = url.openConnection();
    HttpURLConnection Connect = (HttpURLConnection)urlConnection;
    if (Connect.getResponseCode() == HttpURLConnection.HTTP_OK) {
    InputStream stream = Connect.getInputStream();
     
     stream.read();
    Mais je n'ai aucune méthode concernant la syntaxe ...

    Mon environnement Eclipse + SDK fonctionne parfaitement et j'arrive à créer un projet "HelloWorld"

    Merci pour vos conseils avisés ... j'espère à tout de suite.

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 115
    Points : 106
    Points
    106
    Par défaut
    Voici un exemple par contre mes données retourné sont au format JSON a toi de l'adapter
    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
    String resultz = "";
    		InputStream is = null ;
    			//http post
    			try{
    			        HttpClient httpclient = new DefaultHttpClient();
    			        HttpPost httppost = new HttpPost("http://tonadresse/user/login");
     
     
    			        // Request parameters and other properties.
    			        List<NameValuePair> params1 = new ArrayList<NameValuePair>(2);
    			        params1.add(new BasicNameValuePair("email", email));
    			        params1.add(new BasicNameValuePair("password", password));
    			        httppost.setEntity(new UrlEncodedFormEntity(params1, "UTF-8"));
     
     
     
    			        HttpResponse response = httpclient.execute(httppost);
    			        HttpEntity entity = response.getEntity();
    			        is = entity.getContent();
    			}catch(Exception e){
    			        Log.e("log_tag", "Error in http connection "+e.toString());
    			}
    			//convert response to string
    			try{
    			        BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8"),8);
    			        StringBuilder sb = new StringBuilder();
    			        String line = null;
    			        while ((line = reader.readLine()) != null) {
    			                sb.append(line + "\n");
    			        }
    			        is.close();
     
    			        resultz=sb.toString();
    			}catch(Exception e){
    			        Log.e("log_tag", "Error converting result "+e.toString());
    			}
     
     
    				JSONObject obj;
    					try {
    						obj = new JSONObject(resultz);
     
    						boolean isAuth = obj.getBoolean("authenticated");
     
    						String sessionId = ((JSONObject)obj.get("user")).getString("session");
    						if(sessionId != null)
    							LocationUser.setSessionId(sessionId);
     
     
    					} catch (JSONException e) {
    						e.printStackTrace();
    					}

  3. #3
    Candidat au Club
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Salut, et merci pour ta réponse rapide.

    En fait, je pense que ce que j'ai besoin dans un premier temps est bien plus simple.

    En gros

    j'ai besoin de lancer une connexion

    http://monadresse.com/authentification/titi/tata

    et le serveur me répond Ok et je souhaite l'afficher.

    Je n'ai pas besoin de saisir un user et un mdp puisque ils sont contenus dans l'adresse.

    Merci pour ton aide

  4. #4
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Par pitié, arrêtez avec le copier/coller de code sale...

    Voici le code de kalagan34 corrigé:
    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
     
    // le try est global à la fonction... une erreur interrompt toute la fonction pas seulement une partie
    try{
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("http://tonadresse/user/login");
        // Request parameters and other properties.
        List<NameValuePair> params1 = new ArrayList<NameValuePair>(2);
        params1.add(new BasicNameValuePair("email", email));
        params1.add(new BasicNameValuePair("password", password));
        httppost.setEntity(new UrlEncodedFormEntity(params1, "UTF-8"));
     
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity entity = response.getEntity();
     
        // ici la magie de réutiliser le code existant:
        String resultz = EntityUtils.toString(entity);
     
        JSONObject obj = new JSONObject(resultz);
        boolean isAuth = obj.getBoolean("authenticated");
        String sessionId = ((JSONObject)obj.get("user")).getString("session");
        if (sessionId != null)
             LocationUser.setSessionId(sessionId);
    } catch (Exception e) {
        // un vrai log complet à la fin (pas avec un 'e.toString()' donc)
        Log.e("log_tag", "Error converting result ",e);
    }
    Pour répondre à la question initiale... peut importe le code, l'idée est la même...
    1. Construction de l'URL.
    2. Construction de la requête (dans le code example HttpPost, mais ca peut être HttpGet)
    3. Envoi de la requête (client.execute)
    4. Reception / Lecture de la réponse (ici le JSONObject)

    Le tout dans une AsyncTask bien entendu ....
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  5. #5
    Candidat au Club
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci pour ta réponse. je prends en compte tes remarques et reviens après de nouveaux essais.

    Merci encore

Discussions similaires

  1. [V7] cherche conseil pour débutant
    Par adelcrb dans le forum Odoo (ex-OpenERP)
    Réponses: 1
    Dernier message: 05/12/2014, 21h27
  2. Cherche plugin pour modifer Requête HTTP
    Par grifx dans le forum Internet
    Réponses: 0
    Dernier message: 05/04/2012, 16h09
  3. débutant visio cherche conseils
    Par patansouis dans le forum Visio
    Réponses: 3
    Dernier message: 15/04/2008, 21h38
  4. Cherche conseil pour choisir mon orientation.
    Par AslDice dans le forum Débuter
    Réponses: 6
    Dernier message: 24/04/2003, 17h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo