2012-03-26 10 views
3

Ich verwendete isReachable, aber es hat nicht funktioniert, und ich habe ConnectivityManager und getNetworkInfo; eigentlich funktioniert das nur, um zu überprüfen, ob ich mit dem Internet verbunden bin ...Wie pinge ich eine Website von einer Android-Aktivität aus und bekomme eine Antwort?

Aber das Problem ist, ich möchte überprüfen, ob ich auf das Internet zugreifen kann, also möchte ich eine Website pingen, um zu überprüfen, ob es eine Antwort gibt.

Antwort

5

Für die get-Methode:

private void executeReq(URL urlObject) throws IOException{ 
    HttpURLConnection conn = null; 

    conn = (HttpURLConnection) urlObject.openConnection(); 
    conn.setReadTimeout(100000); //Milliseconds 
    conn.setConnectTimeout(150000); //Milliseconds 
    conn.setRequestMethod("GET"); 
    conn.setDoInput(true); 

    // Start connect 
    conn.connect(); 
    String response = convertStreamToString(conn.getInputStream()); 
    Log.d("Response:", response); 
} 

Sie nennen es mit

try { 
    String parameters = ""; // 
    URL url = new URL("http://alefon.com" + parameters); 
    executeReq(url); 
} 
catch(Exception e){ 
    //Error 
} 

Internetverbindung Um zu überprüfen, zu verwenden:

private void checkInternetConnection() { 
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo ni = cm.getActiveNetworkInfo(); 
    if (null == ni) 
     Toast.makeText(this, "no internet connection", Toast.LENGTH_LONG).show(); 
    else { 
     Toast.makeText(this, "Internet Connect is detected .. check access to sire", Toast.LENGTH_LONG).show(); 
     //Use the code above... 
    } 
} 
+0

Vielen Dank @Mohammed, das Problem ist, dass ich überprüfen möchte, ob ich auf irgendeine Website zugreifen kann, wenn ja ein Toast sagt "Es gibt Internetzugang" ... und wenn nicht der Toast sagt "Browsing Problem" obwohl Das Gerät ist mit WLAN verbunden – Amt87

+0

Ich aktualisiere die Antwort .. check it plz .. aber es ist immer noch notwendig, um den Zugriff auf die Website zu überprüfen .. weil Server heruntergehen kann, oder keinen Zugang etc .. so überprüfen Sie die Internetverbindung dann überprüfen Sie Call-Site und erhalten Antwort.... –

3

verwenden ein .. Dies funktioniert gut für mich :)

public static void isNetworkAvailable(Context context){ 
    HttpGet httpGet = new HttpGet("http://www.google.com"); 
    HttpParams httpParameters = new BasicHttpParams(); 
    // Set the timeout in milliseconds until a connection is established. 
    // The default value is zero, that means the timeout is not used. 
    int timeoutConnection = 3000; 
    HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection); 
    // Set the default socket timeout (SO_TIMEOUT) 
    // in milliseconds which is the timeout for waiting for data. 
    int timeoutSocket = 5000; 
    HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket); 

    DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters); 
    try{ 
     Log.e("checking", "Checking network connection..."); 
     httpClient.execute(httpGet); 
     Log.e("checking", "Connection OK"); 
     return; 
    } 
    catch(ClientProtocolException e){ 
     e.printStackTrace(); 
    } 
    catch(IOException e){ 
     e.printStackTrace(); 
    } 

    Log.e("checking", "Connection unavailable"); 
} 
Verwandte Themen