Partage
  • Partager sur Facebook
  • Partager sur Twitter

avoir du contenu depuis une url android

    17 mars 2013 à 22:11:34

    Bonjour.

    Je voudrai pouvoir obtenir du contenu en visitant des url, j'ai essayé avec le HttpClient mais j'avais une erreur comme quoi il ne fallait pas exécuter dans le processus principal.

    J'ai donc essayé de faire ça dans un autre processus mais je n'y arrive pas.

    Voici mon code

    import java.io.IOException;
    
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.ResponseHandler;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.impl.client.BasicResponseHandler;
    import org.apache.http.impl.client.DefaultHttpClient;
    
    import android.os.AsyncTask;
    
    public class WebReader extends AsyncTask<String, Integer, String> {
      
    	private String result;
    	
    	@Override
    	protected void onPreExecute() {
    	    super.onPreExecute();
    	}
    	
    	@Override
    	protected String doInBackground(String... params) {
    		String result = null;
    		HttpClient client = new DefaultHttpClient();
    		HttpGet request = new HttpGet(params[0]);
    		ResponseHandler<String> responseHandler = new BasicResponseHandler();
    		System.out.println(params[0]);
    		try {
    			result = client.execute(request, responseHandler);
    			System.out.println("result ok");
    		} catch (ClientProtocolException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		this.result = result;
    		return result;
    	
    	}
    	
    	@Override
    	protected void onProgressUpdate(Integer... progress) {
    	}
    	
    	@Override
    	protected void onPostExecute(String result) {
    	    this.result = result;
    	}
    	
    	public String getResult(){
    		return result;
    	}
    
    
    }
    

    et je l'utilise comme ça

    	private static String getHtml(String url){
    		System.out.println("begin");
    		String result = null;
    		WebReader wr = new WebReader();
    		wr.execute(url);
    		result = wr.getResult();
    		while(result==null){
    			try {
    				System.out.println("try");
    				Thread.sleep(100);
    				result = wr.getResult();
    			} catch (InterruptedException e) {
    				result = "";
    			}
    			
    		}
    		System.out.println("end");
    		return result;
    		
    	}

    Je pense que c'est super sale mais je ne sais pas comment faire pour récupérer une variable dans un autre processus.

    Dans tous les exemples que j'ai vu ils téléchargent un fichier, il n'y a donc aucune valeur à récupérer.

    Je voudrai donc récupérer un String de ce processus dans mon processus principal mais je ne sais pas du tout comment faire.

    Merci



    • Partager sur Facebook
    • Partager sur Twitter

    avoir du contenu depuis une url android

    × 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