CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: bluflight13 con ben 13 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: kalel77 con ben 85 Thanks ricevuti negli ultimi sette giorni
Utente del mese: bluflight13 con ben 403 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 1 su 1
Discussione:

Richiesta HTML e problemi inerenti

  1. #1
    Androidiano L'avatar di rEDTUNING
    Registrato dal
    Sep 2012
    Località
    Santa Teresa di Riva (ME)
    Messaggi
    243
    Smartphone
    Galaxy Nexus
    Thanks
    22
    Thanked 49 Times in 31 Posts
    Predefinito

    Richiesta HTML e problemi inerenti

    Salve a tutti, sono nuovo della programmazione android ma sono già un programmatore Java quindi non ho difficoltà da questo punto di vista. Mi sto cimentando in una piccola app di test per imparare mentre avanzo e sono bloccato in un punto in cui il problema non sembra essere il "come fare" ma il "perchè da questo risultato :S".
    In breve questa parte di app ricava il codice HTML da una pagina remota, niente di complesso a quanto pare. Ho usato diversi metodi, sfruttando il DefaultHttpClient(), prendendo in inputstream il flusso di dati raw e tutto il resto, solo che si presenta sempre una strana situazione, mi ricava l'html dalla pagina ma non tutto! Come se avesse un limite, se ad un certo punto non riuscisse a ricavare piu' dati e si ferma nel bel mezzo della pagina scaricandomi metà dati.

    Per ora vi mostro il metodo attualmente utilizzato:

    Java:
     private class mio extends AsyncTask<String, Void, Void> {

    @Override
    protected Void doInBackground(String... urls) {
    HttpGet pageGet = new HttpGet(urls[0]);
    String pageHTML = "";
    HttpClient client = new DefaultHttpClient();

    ResponseHandler<String> handler = new ResponseHandler<String>() {
    public String handleResponse(HttpResponse response) throws ClientProtocolException, IOException {
    HttpEntity entity = response.getEntity();
    String html;

    if (entity != null) {
    html = EntityUtils.toString(entity);
    return html;
    } else {
    return null;
    }
    }
    };

    pageHTML = null;
    try {
    while (pageHTML==null){
    pageHTML = client.execute(pageGet, handler);
    }
    } catch (ClientProtocolException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    Log.v("HTML",pageHTML);
    return null;
    }


    }


    Ho fatto uso di un AsyncTask dato che i protocolli di scambio con DefaultHttpClient() e il resto a quanto pare non possono essere fatti nella main activity.

    richiamo il tutto con:

    Java:
    	mio get = new mio();
    get.execute("http://it.wikipedia.org/");


    E il risultato è che viene visualizzata si e no l'html di mezza pagina non tutta. Provato sia così, sia mettendolo in una variabile string, sia sfruttando lo stream di dati proveniente con un bufferedReader ecc. Nulla, sempre spezzoni di pagina e mai tutta. Pensavo ad un limite in qualcosa ma non so in cosa, oppure che mi restituisse il tutto prima di aver finito l'effettivo download, ma a quest'ultima ipotesi non credo.

    Mi sareste di grandissimo aiuto con consigli su quale potrebbe essere il problema o eventualmente dei metodi testati e funzionanti per ricavarsi l'HTML di una web page.
    Ultima modifica di rEDTUNING; 20-01-13 a 00:41


    Ovvero: se spari boiate posso conseguire ciò che voglio

    * Galaxy Nexus 16gb: Paranoidandroid 3.99-RC2 (Android 4.3)
    * Nexus 7 32gb: Paranoidandroid 3.99-RC2 (Android 4.3)

  2.  

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •