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

API standards et tierces Android Discussion :

Connexion API Android


Sujet :

API standards et tierces Android

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Connexion API Android
    Bonjour,
    Je suis encore débutant avec Android , j'utilise "Android Studio" pour une application que je suis entrain de développer,sachant que j'ai l'API prête en ligne ,et je dois me connecte sur cet API en premier lieu pour la toute première page , connexion déconnexion , il faut que j'arrive à communiquer le login et le mot de passe à l'api , vérifier qu'ils y sont , et permettre à l'utilisateur de se connecter ou non le cas échéant , et si l'utilisateur a pu se connecter , il faut que je sauvegarde ses coordonnés d'une façon qu'il puisse naviguer d'une page à une autre sans qu"on lui demande de retaper son mot de passe (TOKEN un truc comme ça ) .
    Merci d'avance pour votre Aide

  2. #2
    Membre éclairé
    Avatar de LeBzul
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 381
    Points : 832
    Points
    832
    Par défaut
    Salut,
    Oui et ?
    C'est quoi ton problème ?
    Tu as déjà fait quoi ?
    Qu'est ce qui te bloque ?
    Quel genre de recherche a tu fait avant de venir ?
    Dans quel direction tu compte aller ?
    "Quand la lune n'est pas là, la nuit mène une existence obscure"

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Oui je m'excuse je me suis mal exprimé , c'est la première fois que j'utilise un forum , je suis vraiment mais vraiment débutant , mais bon il y a un début à tout .
    Alors pour pouvoir me connecter sur l'api j'ai utilisé " MyHttpPostProjectActivity" , c'est un bout de code que j'ai trouvé sur le net , je comprends pas tous les instructions à 100% mais bon ... je dois faire avec vu que je vous rappelle que j'y connais pas grand chose mais je dois quand même faire cette appli .
    bref , j'ai eu des erreurs , j'ai pu corrigé quelques unes , et je me suis bloqué


    2858-2876/hellodroid.supinfo.com.whaat1 E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #1
    Process: hellodroid.supinfo.com.whaat1, PID: 2858
    java.lang.RuntimeException: An error occured while executing doInBackground()
    at android.os.AsyncTask$3.done(AsyncTask.java:300)
    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
    at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
    at java.util.concurrent.FutureTask.run(FutureTask.java:242)
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    at java.lang.Thread.run(Thread.java:818)
    Caused by: java.lang.SecurityException: Permission denied (missing INTERNET permission?)
    at java.net.InetAddress.lookupHostByName(InetAddress.java:451)
    at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252)
    at java.net.InetAddress.getAllByName(InetAddress.java:215)
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
    at hellodroid.supinfo.com.whaat1.MyHttpPostProjectActivity$1SendPostReqAsyncTask.doInBackground(MyHttpPostProjectActivity.java:111)
    at hellodroid.supinfo.com.whaat1.MyHttpPostProjectActivity$1SendPostReqAsyncTask.doInBackground(MyHttpPostProjectActivity.java:71)
    at android.os.AsyncTask$2.call(AsyncTask.java:288)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    ************at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
    ************at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    ************at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    ************at java.lang.Thread.run(Thread.java:818)
    Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname)
    at libcore.io.Posix.android_getaddrinfo(Native Method)
    at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:55)
    at java.net.InetAddress.lookupHostByName(InetAddress.java:438)
    ************at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252)
    ************at java.net.InetAddress.getAllByName(InetAddress.java:215)
    ************at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
    ************at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
    ************at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
    ************at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
    ************at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
    ************at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
    ************at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
    ************at hellodroid.supinfo.com.whaat1.MyHttpPostProjectActivity$1SendPostReqAsyncTask.doInBackground(MyHttpPostProjectActivity.java:111)
    ************at hellodroid.supinfo.com.whaat1.MyHttpPostProjectActivity$1SendPostReqAsyncTask.doInBackground(MyHttpPostProjectActivity.java:71)
    ************at android.os.AsyncTask$2.call(AsyncTask.java:288)
    ************at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    ************at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
    ************at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    ************at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    ************at java.lang.Thread.run(Thread.java:818)
    Caused by: android.system.ErrnoException: android_getaddrinfo failed: EACCES (Permission denied)
    ************at libcore.io.Posix.android_getaddrinfo(Native Method)
    ************at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:55)
    ************at java.net.InetAddress.lookupHostByName(InetAddress.java:438)
    ************at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252)
    ************at java.net.InetAddress.getAllByName(InetAddress.java:215)
    ************at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
    ************at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
    ************at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
    ************at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
    ************at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
    ************at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
    ************at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
    ************at hellodroid.supinfo.com.whaat1.MyHttpPostProjectActivity$1SendPostReqAsyncTask.doInBackground(MyHttpPostProjectActivity.java:111)
    ************at hellodroid.supinfo.com.whaat1.MyHttpPostProjectActivity$1SendPostReqAsyncTask.doInBackground(MyHttpPostProjectActivity.java:71)
    ************at android.os.AsyncTask$2.call(AsyncTask.java:288)
    ************at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    ************at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
    ************at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    ************at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    ************at java.lang.Thread.run(Thread.java:818)

  4. #4
    Membre éclairé
    Avatar de LeBzul
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 381
    Points : 832
    Points
    832
    Par défaut
    Ok,
    Une des lignes importantes dans les logs est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Caused by: java.lang.SecurityException: Permission denied (missing INTERNET permission?)
    Tu dois mettres dans ton AndroidManifest.xml la permission pour que ton appli ai accès à internet :
    <uses-permission android:name="android.permission.INTERNET" />

    Cela devrais régler une grosse partie de ton soucis.

    Si tu as encore des erreur après cela, mets les nouveaux log.
    "Quand la lune n'est pas là, la nuit mène une existence obscure"

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Je te remercie de m'avoir consacré de ton temps , mais la permission elle y est déjà , du coup je vois pas trop c'est quoi le problème d'accès à internet :/
    sinon c'est quoi les nouveaux log ?

  6. #6
    Membre éclairé
    Avatar de LeBzul
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 381
    Points : 832
    Points
    832
    Par défaut
    La permission doit être avant la balise <application>

    Dans le style la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
     
    <application
    ....
    Est ce que c'est le cas ?
    "Quand la lune n'est pas là, la nuit mène une existence obscure"

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    oui c'est vraie c'était pas dans le bon endroit merci

    Mais j'arrive toujours pas à me connecter
    Peut tu stp m'expliquer cette partie du code et je t'en serai reconnaissant ? je vois pas ce que ça fait exactement :/

    try {

    httpPost.setEntity(urlEncodedFormEntity);

    try {
    HttpResponse httpResponse = httpClient.execute(httpPost);
    InputStream inputStream = httpResponse.getEntity().getContent();
    InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
    BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
    StringBuilder stringBuilder = new StringBuilder();
    String bufferedStrChunk = null;
    while ((bufferedStrChunk = bufferedReader.readLine()) != null) {
    stringBuilder.append(bufferedStrChunk);
    }
    return stringBuilder.toString();
    } catch (ClientProtocolException cpe) {
    System.out.println("First Exception caz of HttpResponese :" + cpe);
    cpe.printStackTrace();
    } catch (IOException ioe) {
    System.out.println("Second Exception caz of HttpResponse :" + ioe);
    ioe.printStackTrace();
    }

    } catch (UnsupportedEncodingException uee) {
    System.out.println("An Exception given because of UrlEncodedFormEntity argument :" + uee);
    uee.printStackTrace();
    }

    return null;
    }

    @Override
    protected void onPostExecute(String result) {
    super.onPostExecute(result);

    if (result.equals("succes")) {
    Toast.makeText(getApplicationContext(), "HTTP POST is working...", Toast.LENGTH_LONG).show();
    } else {
    Toast.makeText(getApplicationContext(), "Invalid POST req...", Toast.LENGTH_LONG).show();
    }
    }
    }

    SendPostReqAsyncTask sendPostReqAsyncTask = new SendPostReqAsyncTask();
    sendPostReqAsyncTask.execute(givenUsername, givenPassword);

  8. #8
    Membre éclairé
    Avatar de LeBzul
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 381
    Points : 832
    Points
    832
    Par défaut
    Bha, c'est censé faire une requête http et récupérer la réponse dans un string.
    Peut être tu trouveras de meilleur explication et bonne facon de faire dans ce tuto :
    http://android.developpez.com/actu/8...g-de-nicroman/

    Un petit conseil, n'utilise jamais du code que tu ne comprend pas, ca ne peut que te desservir par la suite.. Surtout si ca ne marche pas.
    Il y a pleins de tutoriel partout sur le net, en cherchant un peu tu trouveras de bon site qui explique très bien les concepts de bases.
    Perdre quelques heures à comprendre ce que tu utilises te feras gagner plusieurs jours par la suite.
    Bon courage.
    "Quand la lune n'est pas là, la nuit mène une existence obscure"

  9. #9
    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
    Merci merci pour le pointeur sur le blog...

    Bon sinon... ceci va crasher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (result.equals("succes")) {
    


    result peut être nul (si une erreur s'est produite) => NullPointerException dans le thread UI ("l'application XXXX s'est arrêtée")




    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  10. #10
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Je vous remercie pour vos explications , j'ai passé presque toute la nuit et pratiquement toute la matinée à chercher et à essayer de comprendre le code , et ça va mieux , j'avance, mais tout doucement :/
    Un truc que je n'arrive pas à comprendre pourquoi result est nul !!! c'est vrai ça a crashé mais je comprend pas pourquoi result est nul
    Pourriez vous svp m'expliquer avec des commentaires juste la methode onPostExecute !! ?? ou plutôt juste la première ligne

    " super.onPostExecute(result);"

    ça fait quoi au juste ? result à la base c'est un paramétre , mais qui c'est qui va lui donné une valeur ?? comment on peut le déclarer et l'utiliser direct ?? :/


    protected void onPostExecute(String result) {
    super.onPostExecute(result);

    if (result.equals("success")) {
    Toast.makeText(getApplicationContext(), "HTTP POST is working...", Toast.LENGTH_LONG).show();
    } else {
    Toast.makeText(getApplicationContext(), "Invalid POST req...", Toast.LENGTH_LONG).show();
    }

  11. #11
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Bon bah du coup ça a marché , j'ai du me casser la tete a bien comprendre le code , j'ai pas tout compris mais tant que ça marche c'est l'essentiel
    Je vous remercie pour tout

Discussions similaires

  1. Connexion entre Android et MySQL
    Par analystedodo dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 28/11/2012, 21h15
  2. Problème de connexion entre Android et MySQL via les Web Services
    Par amalmanel dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 22/03/2012, 02h36
  3. Gestion des erreurs de connexion sur Android
    Par khaledfayala dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 22/02/2012, 14h53
  4. [Bénévole] developpement gros site web + API android
    Par jujoluca dans le forum Autres
    Réponses: 0
    Dernier message: 22/11/2011, 13h06
  5. Appel Sipdroid dans une api android
    Par S.Jihad dans le forum Android
    Réponses: 0
    Dernier message: 16/05/2011, 12h54

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