Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android] Requête HTTP - problème

String vide a la reponse

Sujet résolu
    24 septembre 2013 à 23:11:32

    Bonsoir, après quelque heure de recherche, je me confronte a un problème, j'ai pioché sur internet des scripts afin de récupérer une réponse d'une requête Http, ma page PHP est créé, j'ai ajouter les permissions dans le manifest, mon appli ne renvoi pas d'exception à l'envoi de la requête mais la réponse et vide, même en essayant de récupérer le code source de la page de Google mon String reste vide, j'ai besoin d'aide SVP.

    Voici mon fichier:

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    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.params.HttpProtocolParams;
    
    public class HttpRequest {
    	
    	public static String getInternetData() throws Exception
    	{
        	StringBuffer stringBuffer = new StringBuffer("");
        	BufferedReader bufferedReader = null;
     
        	try{
        		HttpClient httpClient = new DefaultHttpClient();
        		HttpProtocolParams.setUseExpectContinue(httpClient.getParams(), false);
        		HttpGet httpGet = new HttpGet();
     
        		URI uri = new URI("http://www.google.fr/");
        		httpGet.setURI(uri);
     
        		HttpResponse httpResponse = httpClient.execute(httpGet);
     
        		InputStream inputStream = httpResponse.getEntity().getContent();
     
        		bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
     
        		String ligneCodeHTML = bufferedReader.readLine();
        		while (ligneCodeHTML != null){
        			stringBuffer.append(ligneCodeHTML);
        			stringBuffer.append("\n");
        			ligneCodeHTML = bufferedReader.readLine();
        		}
        	}catch (Exception e){
        	}finally{
        		if (bufferedReader != null){
        			try{
        				bufferedReader.close();
        			}catch(IOException e){
        			}
        		}
        	}
    		return stringBuffer.toString();
    	}
    
    }
    



    -
    Edité par Zirchina 24 septembre 2013 à 23:15:28

    • Partager sur Facebook
    • Partager sur Twitter
      25 septembre 2013 à 14:02:09

      Yop,

      A part ton parsing des informations qui est un peu "old school", ça me semble correct.

      On va commencer par le commencement, à savoir est-ce que tu récupères bien quelque chose.
      Pour ça, met un petit

      Log.i("Response", "Contenu de la réponse : " +  httpResponse.getEntity());

      juste après ta déclaration de httpResponse.

      Si tu as bien un contenu c'est ton parsing qui est à revoir (et à mon avis, c'est ça)

      Pour récupérer les données et les retourner en tant que String, utilise cette méthode

      try {
      			BufferedReader reader = new BufferedReader(new InputStreamReader(
      					inputStream, "iso-8859-1"), 8);
      			StringBuilder sb = new StringBuilder();
      			String line = null; 
      			while ((line = reader.readLine()) != null) {
      				sb.append(line);
      			}
      			inputStream.close();
      			return sb.toString();
      		} catch (Exception e) {
      			Log.e("Erreur Buffer", "WebRequest : " + e.toString());
      		}
      

      -
      Edité par Xerib 25 septembre 2013 à 14:04:23

      • Partager sur Facebook
      • Partager sur Twitter
        25 septembre 2013 à 17:22:29

        J'ai finalement trouver un lien me montrant des sources afin de pouvoir récupérer des données, je me suis rendu compte que certain de mes anciens essai, certaine fois l'appli planté et j'ai découvert que tout ce passé dans le manifest, j'avais mis:
        <uses-sdk android:minSdkVersion="11" android:targetSdkVersion="17" />

        et sur le fichier source que j'ai récupérer il m'était
        <uses-sdk android:minSdkVersion="4" />


        donc j'ai changer et, oh miracle, mon appli récupère bien les donnée que je demmande :)

        Donc voila, pour ce que sa intéresse, voici le lien en question : http://www.erlem-technologies.com/fr/blog/20-blog-blog/75-android--recuperer-le-contenu-dun-fichier-distant

        -
        Edité par Zirchina 25 septembre 2013 à 17:23:14

        • Partager sur Facebook
        • Partager sur Twitter

        [Android] Requête HTTP - problème

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown