Autore Topic: copiare body html in una stringa in MainActivity di android studio  (Letto 451 volte)

Offline franco

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    samsung j7
  • Sistema operativo:
    Windows 7
0
ciao a tutti

premetto che sono un neofita e che man mano che leggo documentazioni mi invento problematiche da risolvere (sono stimoli che mi pongo per imparare...)

ecco il problema che mi sto ponendo:
vorrei riuscire a copiare dei numeri, caratteri, stringhe (diciamo del contenuto: body o header o titolo) da una pagina html utilizzando codice android studio

così, ho scritto una porzione di codice in android studio
per copiare in una stringa il contenuto di una pagina web da me prodotta per prova in html nella piattaforma altervista che offre spazio gratis per questo.
l'indirizzo è
"www.giochipassatempo.altervista.org" (ho inserito solo le parole "titolo", "intestazione" e "corpo" rispettivamente in title, h1 e body-html)
mi piacerebbe capire come copiare quelle parole da me inserite, in una stringa in android studio (linguaggio Java del Main Activity)

il codice (vedi sotto) non da errori sintattici ma mi restituisce nella textView dat3 "ciao pippo", in pratica non entra nel try, ma esegue la exception.
come mai ? che errore ho commesso ?



try {

URL url = new URL("www.giochipassatempo.altervista.org");
URLConnection yc = url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
String inputLine;
StringBuilder builder = new StringBuilder();
while ((inputLine = in.readLine()) != null)
builder.append(inputLine.trim());
in.close();
String htmlPage = builder.toString();
String versionNumber = htmlPage.replaceAll("\\<.*?>","");
dat3.setText(htmlPage+versionNumber);

}

catch (IOException ex){dat3.setText("ciao pippo");};

Offline Carni

  • Utente junior
  • **
  • Post: 62
  • Respect: +6
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3
  • Play Store ID:
    R3D5HA
  • Sistema operativo:
    Windows 10
Re:copiare body html in una stringa in MainActivity di android studio
« Risposta #1 il: 28 Febbraio 2017, 09:41:52 CET »
0
Nel catch abituati a scrivere l'errore e non cose a caso.
Per vedere il problema scrivi
Codice (XML): [Seleziona]
dat3.setText(ex.getMessage());Poi posta cosa viene scritto.

Offline franco

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    samsung j7
  • Sistema operativo:
    Windows 7
android studio - dat3.setText(ex.getMessage());
« Risposta #2 il: 28 Febbraio 2017, 15:14:44 CET »
0
Ciao Carni
grazie per il tuo interessamnento

Ho appena sostituito il comando suggerito da te
catch (IOException ex){dat3.setText("problemi internet");};
con il comando da te suggerito:
catch (IOException ex){dat3.setText(ex.getMessage());};
così ora appare la seguente frase sullo smartphone:
"Protocol not found:
http//:www.giochipassatempo.altervista.org"


nel frattempo ho provato un'altra istruzione e mi sembra che siamo ad un passo dalla soluzione


Ho scoperto una istruzione più semplice:
WebView collegamento=(WebView) findViewById(R.id.pagina);
collegamento.loadUrl("http://giochipassatempo.altervista.org");

questa istruzione mostra le giuste parole:
 "intestazione" e "corpo"  ma io vorrei catturarle/copiarle in una variabile/Textyview
non mi basta vederle sullo smartphone

che cosa mi suggeriresti di provare per raggiungere il mio obiettivo

ti ringrazio anticipatamente

f
 fbuccino.info@gmail.com

Offline Carni

  • Utente junior
  • **
  • Post: 62
  • Respect: +6
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3
  • Play Store ID:
    R3D5HA
  • Sistema operativo:
    Windows 10
Re:copiare body html in una stringa in MainActivity di android studio
« Risposta #3 il: 28 Febbraio 2017, 16:43:32 CET »
0

così ora appare la seguente frase sullo smartphone:
"Protocol not found:
http//:www.giochipassatempo.altervista.org"


Guarda l'url... Dovrebbe essere "http://" e non "http//:"

Prova con
Codice (Java): [Seleziona]
URL url = new URL("http://www.giochipassatempo.altervista.org);

Offline franco

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    samsung j7
  • Sistema operativo:
    Windows 7
Re:copiare body html in una stringa in MainActivity di android studio
« Risposta #4 il: 01 Marzo 2017, 22:53:29 CET »
0
...ho scritto correttamente "http://" e ma ho riportato "http//:"

comunque mi sembra che siamo piu vicini alla soluzione con le istruzioni seguenti:
WebView collegamento=(WebView) findViewById(R.id.pagina);
collegamento.loadUrl("http://giochipassatempo.altervista.org");

questa istruzione mostra le giuste parole:
 "intestazione" e "corpo"  ma io vorrei catturarle/copiarle in una variabile/Textyview
non mi basta vederle sullo smartphone

che cosa mi suggeriresti di provare per riuscire a copiarle ..

cordialmente

ciao franco

Offline Carni

  • Utente junior
  • **
  • Post: 62
  • Respect: +6
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3
  • Play Store ID:
    R3D5HA
  • Sistema operativo:
    Windows 10
Re:copiare body html in una stringa in MainActivity di android studio
« Risposta #5 il: 02 Marzo 2017, 10:54:00 CET »
0
Prova così

Codice (XML): [Seleziona]
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet("http://giochipassatempo.altervista.org");
HttpResponse response = client.execute(request);

String html = "";
InputStream in = response.getEntity().getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder str = new StringBuilder();
String line = null;
while((line = reader.readLine()) != null)
{
    str.append(line);
}
in.close();
html = str.toString();

Mettilo sempre in try catch.

Offline jurgs

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    OnePlus 2
Re:copiare body html in una stringa in MainActivity di android studio
« Risposta #6 il: 05 Aprile 2017, 00:32:14 CEST »
0
Se usi webview puoi utilizzare il JavaScript della pagina web insieme al java di Android e recuperare tutto ciò che ti serve.

Inviato dal mio ONE A2003 utilizzando Tapatalk