2014-07-26 8 views
0

Ce que je fais :: Je vérifie la connectivité Internet en utilisant ce code dans une tâche Async avec un timeout, il retourne true si la connectivité est le rendement disponible false si la connectivité est pas disponibleComment vérifier délai de connectivité pour la connectivité Android apache

public static boolean hasActiveInternetConnection() { 
      try { 

       HttpClient Client = new DefaultHttpClient(); 

       HttpURLConnection urlc = (HttpURLConnection) (new URL("http://www.google.com").openConnection()); 
       urlc.setRequestProperty("User-Agent", "Test"); 
       urlc.setRequestProperty("Connection", "close"); 
       urlc.setConnectTimeout(500); 
       urlc.connect(); 
       return true; 
      } catch (IOException e) { 
       Log.e("Log", "Error checking internet connection", e); 
      } 
     return false; 
    } 

Comment puis-je faire la même chose pour le client apache Http ci-dessous:

public static String doConnection(String url) { 
     HttpGet httpget=null; 
     String mContent=null; 
     HttpClient Client=null; 

     Client = new DefaultHttpClient(); 
     httpget = new HttpGet(url); 
     ResponseHandler<String> responseHandler = new BasicResponseHandler(); 
     mContent = Client.execute(httpget, responseHandler); 

     return mContent; 
    } 
+0

Tu ne peux pas exécuter Surround avec un essai et faire la même chose que vous avez fait dans le 1er morceau de code? – Simas

+0

@ user3249477 ...... Oui, je peux mais je ne suis pas au courant sur la façon de donner le temps d'attente .... :( – Devrath

Répondre

0

S'il vous plaît essayer ceci:

HttpGet httpget=null; 
String mContent=null; 
HttpClient Client=null; 

Client = new DefaultHttpClient(); 
Client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 500); 
httpget = new HttpGet(url); 
ResponseHandler<String> responseHandler = new BasicResponseHandler(); 
try { 
    mContent = Client.execute(httpget, responseHandler); 
    return true; 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
return false; 

Signaler les erreurs le cas échéant.

EDIT: Cela ressemble plus propre:

HttpParams params = new BasicHttpParams(); 
    HttpConnectionParams.setConnectionTimeout(params, 500); 

    Client = new DefaultHttpClient(params);