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 :

Récupérer données WebService


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 23
    Par défaut Récupérer données WebService
    Bonjour à tous,

    J'essaye de récupérer les données d'un Webservice de test trouvé sur internet mais malheureusement ça ne fonctionne pas .
    Voici le lien: http://restful-example.appspot.com/students.

    LogCat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    12-28 14:25:22.133: E/WS(3060): OpenConnection
    12-28 14:25:22.133: E/WS(3060): Connect
    12-28 14:25:22.133: E/Exception WebService Oncreate(3060): println needs a message

    Code:
    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
     
    public class MainActivity extends Activity {
    	private final String URL = "http://restful-example.appspot.com/students";
     
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		try {
    			InputStream inputStream = sendRequest(new URL(URL));
    		} catch (MalformedURLException e) {
    			Log.e("MalformedURLException WebService OnCreate ", e.getMessage());
    		} catch (Exception e) {
    			Log.e("Exception WebService Oncreate", e.getMessage());
    		}
    	}
     
    	private InputStream sendRequest(URL url) {
     
    		try {
    			Log.e("WS", "OpenConnection");
    			HttpURLConnection urlConnection;
    			urlConnection = (HttpURLConnection) url.openConnection();
    			Log.e("WS", "Connect");
    			urlConnection.connect(); //L'erreur est ici
    			Log.e("WS", "getResponseCode");
    			if (urlConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
    				Log.e("WS", "HTTP_OK");
    				return urlConnection.getInputStream();
    			}
    		} catch (IOException e) {
    			Log.e("IOException WebService sendRequest", e.getMessage());
    		} catch (Exception e) {
    			Log.e("Exception WebService sendRequest", e.getMessage());
    		}
     
    		return null;
    	}
    }

    Manifest:
    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
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.webservice"
        android:versionCode="1"
        android:versionName="1.0" >
     
        <uses-sdk
            android:minSdkVersion="15"
            android:targetSdkVersion="18" />
        <uses-permission android:name="android.permission.INTERNET"></uses-permission>
     
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.example.webservice.MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
     
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
     
    </manifest>
    Je ne comprend pas pourquoi ça ne fonctionne pas, j'ai pourtant trouvé ce code sur le web.

    Merci d'avance pour votre aide

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Remplace ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    } catch (MalformedURLException e) {
    			Log.e("MalformedURLException WebService OnCreate ", e.getMessage());
    		} catch (Exception e) {
    			Log.e("Exception WebService Oncreate", e.getMessage());
    		}
    par ceci pour savoir où est l'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    } catch (MalformedURLException e) {
    			Log.e("OnCreate","MalformedURLException WebService OnCreate ", e);
    		} catch (Exception e) {
    			Log.e("OnCreate","Exception WebService Oncreate", e);
    		}

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 23
    Par défaut
    Salut tchize_

    Alors voici le code 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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    public class MainActivity extends Activity {
    	private final String URL = "http://restful-example.appspot.com/students";
     
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		try {
    			sendRequest(new URL(URL));
    		} catch (MalformedURLException e) {
    			Log.e("OnCreate","MalformedURLException WebService", e);
    		} catch (Exception e) {
    			Log.e("OnCreate","Exception WebService", e);
    		}
    	}
     
    	private InputStream sendRequest(URL url) {
     
    		try {
    			Log.e("WS", "OpenConnection");
    			HttpURLConnection urlConnection;
    			urlConnection = (HttpURLConnection) url.openConnection();
    			Log.e("WS", "urlConnection" + urlConnection.toString());
    			Log.e("WS", "Connect");
    			urlConnection.connect();
    			Log.e("WS", "getResponseCode");
    			if (urlConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
    				Log.e("WS", "HTTP_OK");
    				return urlConnection.getInputStream();
    			}
    		} catch (IOException e) {
    			Log.e("sendRequest","IOException WebService", e);
    		} catch (NetworkOnMainThreadException e) {
    			Log.e("sendRequest","NetworkOnMainThreadException WebService", e);
    		}
     
    		return null;
    	}
    }

    Et le logcat
    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
    12-28 16:55:38.222: E/WS(21585): OpenConnection
    12-28 16:55:38.222: E/WS(21585): urlConnectionlibcore.net.http.HttpURLConnectionImpl:http://restful-example.appspot.com/students
    12-28 16:55:38.222: E/WS(21585): Connect
    12-28 16:55:38.222: E/sendRequest(21585): NetworkOnMainThreadException WebService
    12-28 16:55:38.222: E/sendRequest(21585): android.os.NetworkOnMainThreadException
    12-28 16:55:38.222: E/sendRequest(21585): 	at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1144)
    12-28 16:55:38.222: E/sendRequest(21585): 	at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
    12-28 16:55:38.222: E/sendRequest(21585): 	at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
    12-28 16:55:38.222: E/sendRequest(21585): 	at java.net.InetAddress.getAllByName(InetAddress.java:214)
    12-28 16:55:38.222: E/sendRequest(21585): 	at libcore.net.http.HttpConnection.<init>(HttpConnection.java:70)
    12-28 16:55:38.222: E/sendRequest(21585): 	at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
    12-28 16:55:38.222: E/sendRequest(21585): 	at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340)
    12-28 16:55:38.222: E/sendRequest(21585): 	at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87)
    12-28 16:55:38.222: E/sendRequest(21585): 	at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
    12-28 16:55:38.222: E/sendRequest(21585): 	at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:316)
    12-28 16:55:38.222: E/sendRequest(21585): 	at libcore.net.http.HttpEngine.connect(HttpEngine.java:311)
    12-28 16:55:38.222: E/sendRequest(21585): 	at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:290)
    12-28 16:55:38.222: E/sendRequest(21585): 	at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:240)
    12-28 16:55:38.222: E/sendRequest(21585): 	at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:81)
    12-28 16:55:38.222: E/sendRequest(21585): 	at com.example.webservice.MainActivity.sendRequest(MainActivity.java:38)
    12-28 16:55:38.222: E/sendRequest(21585): 	at com.example.webservice.MainActivity.onCreate(MainActivity.java:22)
    12-28 16:55:38.222: E/sendRequest(21585): 	at android.app.Activity.performCreate(Activity.java:5372)
    12-28 16:55:38.222: E/sendRequest(21585): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
    12-28 16:55:38.222: E/sendRequest(21585): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2257)
    12-28 16:55:38.222: E/sendRequest(21585): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
    12-28 16:55:38.222: E/sendRequest(21585): 	at android.app.ActivityThread.access$700(ActivityThread.java:159)
    12-28 16:55:38.222: E/sendRequest(21585): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
    12-28 16:55:38.222: E/sendRequest(21585): 	at android.os.Handler.dispatchMessage(Handler.java:99)
    12-28 16:55:38.222: E/sendRequest(21585): 	at android.os.Looper.loop(Looper.java:137)
    12-28 16:55:38.222: E/sendRequest(21585): 	at android.app.ActivityThread.main(ActivityThread.java:5419)
    12-28 16:55:38.222: E/sendRequest(21585): 	at java.lang.reflect.Method.invokeNative(Native Method)
    12-28 16:55:38.222: E/sendRequest(21585): 	at java.lang.reflect.Method.invoke(Method.java:525)
    12-28 16:55:38.222: E/sendRequest(21585): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
    12-28 16:55:38.222: E/sendRequest(21585): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
    12-28 16:55:38.222: E/sendRequest(21585): 	at dalvik.system.NativeStart.main(Native Method)

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Rhalala. Je ne développe pas en android, mais ça je connait:

    NetworkOnMainThreadException
    Pas d'appel réseaux sur la boucle principal du programme en android (ça peut rendre l'application irrépondante)


    http://developer.android.com/trainin....html#Avoiding

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 23
    Par défaut
    Merci pour ta réponse, mais je ne vois pas du tout d'où ça peux venir.
    Mon téléphone est bien connecté à internet pourtant, j'ai essayé en wifi et en 3G et j'ai mis la permission internet dans mon manifest.

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Je ne vois pas le rapport du tout entre ton problème (tu fait un appel réseau dans un thread où c'est interdit) et ta réponse derrière

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Récupérer données d'un Webservice
    Par seb-65 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/12/2011, 14h30
  2. [WebService] Récupérer données structurées côté client
    Par Skyou dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 23/06/2010, 15h54
  3. [JTable] Récupérer données d'une cellule éditée
    Par lilou77 dans le forum Composants
    Réponses: 9
    Dernier message: 14/09/2005, 10h34
  4. [Servlet] Méthode Get : récupérer données de l'url
    Par david71 dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 01/02/2005, 11h52
  5. [Fichier] Récupérer donnée d'un fichier
    Par johnlehardos dans le forum Entrée/Sortie
    Réponses: 8
    Dernier message: 11/05/2004, 13h42

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