[Java] help Clicca QUI per vedere il messaggio nel forum |
pancio23 |
Qualcuno sa come fare per catturare i messaggi di risposta del browser quando carica un URL.
Come Page not found, ecc.
Io lancio il browser da java usando la classe "Browser" che contiene il metodo "displayURL(string URL)".
A questo punto vorrei sapere se il browser carica la pagina o meno!
Grazie |
0m4r |
potresti essere mooolto più chiaro?
magari posta anche il codice che usi (fra i tag "code" cosi non si spagina tutto)... |
pancio23 |
Bè, il codice dell'evento che lancio per aprire il browser è :
class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
String URL = e.getActionCommand();
try {
b.init();
b.displayURL(URL);
}
catch (Exception exc) {
JButton button = (JButton)e.getSource();
button.setEnabled(false);
System.err.println(exc.getMessage());
}
}
}
Dove URL è una stringa. A questo punto il browser si apre correttamente, ma io salvare da qualche parte la risposta del browser : ossia se l'url è stato caricato correttamente o se ha incontrato qualche errore. |
0m4r |
code:
class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
String URL = e.getActionCommand();
try {
b.init();
b.displayURL(URL);
}catch (Exception exc) {
JButton button = (JButton)e.getSource();
button.setEnabled(false);
System.err.println(exc.getMessage());
}
}
}
scusa, ma cosa è b?
è un istanza della classe Browser (che poi, tra l'altro, sta classe Browser dove l'hai pescata?)
P.S.
dai un occhiata qui, qua e piu in generale a questo link |
pancio23 |
Ciao, innanzi tutto ti ringrazio, e mi scuso per il tempo che ti faccio perdere!
Purtroppo i link che mi hai mandato, li avevo già visitati, e in generale parlano di come aprire un browser usando java, ma non di come fare per catturare i messaggi di risposta del browser.
In poche parole, io devo passare una serie di url al browser e vedere se me li carica. Il tutto perchè devo fare un benchmarking dei filtri dei contenuti, come DAVIDE.IT o CHILDKEY.
Se trovi qualcosa d'altro te ne sarei grato, io non riesco ad inventarmi niente.
Ciao |
ripe |
Ho capito cosa intendi, ma ti so solamente dare la soluzione in Asp.Net (vista la grande somiglianza con Java, magari ti può essere d'aiuto lo stesso...):
Dim Richiesta As System.Net.HttpWebResponse
Dim Risposta As System.Net.HttpWebResponse
Dim Flusso As System.IO.StreamReader
Dim Pagina As String = "http://www.yoursite.com/prova.htm"
Dim Dati As String
Richiesta = Richiesta.Create(Pagina)
Richiesta.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)"
Risposta = Richiesta.GetResponse()
Flusso = New System.IO.StreamReader(Risposta.GetResponseStream())
Dati = Flusso.ReadToEnd
Flusso.Close()
Risposta.Close()
Response.Write("Pagina ottenuta in risposta: " & Risposta.ResponseUri.AbsoluteUri)
Response.Write("Meta tag: " & System.Text.RegularExpressions.Regex.Match(Dati, "URL=(?<href>[^""]+)""").Groups("href").Value()
Response.Write("Titolo della pagina: " & System.Text.RegularExpressions.Regex.Match(Dati, "<title>(?<title>[^<]+)</title>", System.Text.RegularExpressions.RegexOptions.IgnoreCase).Groups("title").Value
In questo modo posso analizzare se nei meta tag è previsto un redirect (ovvero l'indirizzo della pagina è cambiato) oppure se nel titolo è presente il famigerato 404! Lo so che non è un metodo affidabile nel 100% dei casi, ma per quello che serve a me è perfetto!
Vedi se riesci a convertire gli oggetti WebRequest e WebResponse nei rispettivi oggetti di Java... |
|
|
|