Autore Topic: Controllare se un sito è raggiungibile  (Letto 2551 volte)

vincenzodicicco

  • Visitatore
Controllare se un sito è raggiungibile
« il: 04 Luglio 2010, 17:58:43 CEST »
+2
Volevo condividere con voi questa piccola classe che ritorna true se il sito dato come parametro è raggiungibile, false se accade il contrario. Diciamo che non conoscendo altri metodi ho pensato a questa soluzione un po "furbetta" :D
Codice (Java): [Seleziona]
public class verifica {
    public boolean serverOK(String Url){
        try {
                        URL url = new URL(Url);
                        URLConnection conn = url.openConnection();
                        BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                        return true;
                } catch (MalformedURLException e) {
                        return false;
                } catch (IOException e) {
                        return false;
                }
    }
}

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Controllare se un sito è raggiungibile
« Risposta #1 il: 04 Luglio 2010, 18:01:13 CEST »
0
Sarebbe forse meglio sollevare al chiamante la MalformedURLException, no? :)

vincenzodicicco

  • Visitatore
Re:Controllare se un sito è raggiungibile
« Risposta #2 il: 04 Luglio 2010, 18:09:27 CEST »
0
Ricky`scusami ma non ti ho capito :D

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Controllare se un sito è raggiungibile
« Risposta #3 il: 04 Luglio 2010, 19:46:38 CEST »
+1
Per farla breve, farei una cosa del genere :)
Codice (Java): [Seleziona]
         public boolean serverOK(String Url) throws MalformedURLException{
                try {
                                URL url = new URL(Url);
                                URLConnection conn = url.openConnection();
                                BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                                return true;
                        } catch (MalformedURLException e) {
                                throw e;
                        } catch (IOException e) {
                                return false;
                        }
         }

vincenzodicicco

  • Visitatore
Re:Controllare se un sito è raggiungibile
« Risposta #4 il: 04 Luglio 2010, 19:54:05 CEST »
0
Perdonami ma è un argomento che non ho potuto mai trattare in modo completo, mi spiegheresti le differenze tra i due? quindi l'aggiunta di
"throws MalformedURLException" cosa cambia? grazie :D:D

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Controllare se un sito è raggiungibile
« Risposta #5 il: 04 Luglio 2010, 20:27:18 CEST »
0
Che chi usa quel codice poi puó gestire l'exception come meglio crede.
Postate il LogCat LogCat LogCat LogCat LogCat

Offline Agosteeno

  • Utente normale
  • ***
  • Post: 152
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson - Xperia Neo
  • Sistema operativo:
    Ubuntu 11.04
Re:Controllare se un sito è raggiungibile
« Risposta #6 il: 04 Aprile 2011, 15:32:30 CEST »
0
Scusate, ho provato a usare questo esempio, ma prima che venga generata la IOException passa un sacco di tempo, tipo 4-5 minuti. C'e' forse qualcosa da settare per andare bene?
Risparmia l'acqua, bevi birra...

Offline Agosteeno

  • Utente normale
  • ***
  • Post: 152
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson - Xperia Neo
  • Sistema operativo:
    Ubuntu 11.04
Re:Controllare se un sito è raggiungibile
« Risposta #7 il: 04 Aprile 2011, 15:52:24 CEST »
0
Trovato! Basta aggiungere questa riga:
...
URL url = new URL(Url);
URLConnection conn = url.openConnection();
conn.setConnectTimeout(5000);
...


Ho scritto 5000 (5 sec) a caso... Ognuno lo settera' in base a quello che gli serve. Ciao a tutti.
Risparmia l'acqua, bevi birra...