PDA

View Full Version : [JAVA] URL e codice HTML


Napalm
12-05-2005, 11:35
Vorrei sapere se esistono delle classi in java che inserendo un URL riesce a metterti in un buffer (che poi dovrei manipolare) il codice sorgente di quella pagina... grazie.

NapalM

Angus
12-05-2005, 11:42
java.net.URL (http://java.sun.com/j2se/1.5.0/docs/api/java/net/URL.html)

Napalm
12-05-2005, 12:04
Oky creo un istanza di URL, ma per farmi ritornare il codice devo usare getContent() e ritorna un oggetto di che tipo?

NapalM

Angus
12-05-2005, 12:15
ma per farmi ritornare il codice devo usare getContent()
NapalM

puoi usare anche openStream() che ti restituisce un InputStream e ci fai quello che vuoi.

Napalm
12-05-2005, 14:57
Problema: per le pagine www.ciao.com\file.html è ok ma non funzia se le pagine sono www.ciao.com\?section=news&pagine=1 ... proprio il mio caso... come posso fare?

NapalM

Angus
12-05-2005, 15:14
Problema: per le pagine www.ciao.com\file.html è ok ma non funzia se le pagine sono www.ciao.com\?section=news&pagine=1 ... proprio il mio caso... come posso fare?

NapalM

Non funziona nel senso che lancia qualche eccezione? In tal caso posteresti lo stack trace?

Napalm
12-05-2005, 15:21
Non funziona nel senso che lancia qualche eccezione? In tal caso posteresti lo stack trace?

Appena ho tempo lo faccio, a naso direi che se non punta a un files preciso che può essere html/wav ecc quel metodo non funzia...almeno negli esempi che ho trovato puntano tutti a file precisi.

NapalM

Napalm
12-05-2005, 15:40
Allora il codice è questo:

try{
URL url = new URL("http://www.swedupe.com/?section.php");
InputStream in = url.openStream();
BufferedReader reader = new BufferedReader(
new InputStreamReader(in));
StringBuffer buffer = new StringBuffer();
for(int c = reader.read(); c != -1; c = reader.read()) {
buffer.append((char)c);
}
System.out.println(buffer.toString());
}catch(Exception e){
System.out.println(e.getMessage());

}


L'url di riferimento è: http://www.swedupe.com/?section.php
e quello che mi esce fuori dal catch è: http://web.telia.com/~u63804469/psykfallet/

NapalM

Angus
12-05-2005, 16:13
e quello che mi esce fuori dal catch è: http://web.telia.com/~u63804469/psykfallet/



Il link non funziona...
hmmm.... fammi pensare...

Napalm
12-05-2005, 16:21
Il link non funziona...

Purtroppo è questo che esce dal catch... :(

NapalM

Angus
12-05-2005, 17:52
Purtroppo è questo che esce dal catch... :(

NapalM

Non capisco perchè ma, se con telnet funziona, con Java succede che alla connessione HTTP arriva un redirect a quell'indirizzo strano, che non esiste. Se scopro qualcosa ti faccio sapere.

Napalm
13-05-2005, 08:58
Non capisco perchè ma, se con telnet funziona, con Java succede che alla connessione HTTP arriva un redirect a quell'indirizzo strano, che non esiste. Se scopro qualcosa ti faccio sapere.

te lo confermo, ho provato a fare la stessa cosa con c# e funziona senza problemi... è proprio java in problema a questo punto :(

NapalM

Angus
13-05-2005, 14:02
Non ho capito perchè :confused:, ma c'è qualcosa che Java interpreta come una redirect... Comunque io ho risolto inserendo questa riga di codice appena prima di aprire l'InputStream:

HttpURLConnection.setFollowRedirects(false);

Fammi sapere...

Napalm
13-05-2005, 14:06
Non ho capito perchè :confused:, ma c'è qualcosa che Java interpreta come una redirect... Comunque io ho risolto inserendo questa riga di codice appena prima di aprire l'InputStream:

HttpURLConnection.setFollowRedirects(false);

Fammi sapere...

Appena riesco lo provo, grazie mille :)

NapalM