簡體   English   中英

如果沒有Internet連接,則HttpURLConnection getResponseCode()deos不會返回

[英]HttpURLConnection getResponseCode() deos not return if there is no Internet connection

我使用HttpURLConnection通過使用以下代碼檢查服務器URL是否可用:

try {
    boolean connectionFailed = false;
    URL knownURL = new URL("http://www.google.com");
    httpConnection = (HttpURLConnection) knownURL.openConnection();
    httpConnection.setConnectTimeout(5000);
    responseCode = httpConnection.getResponseCode();
    if (responseCode != 200)  {
        status = ConnectionStatus.NOT_CONNECTED; 
    }
}
catch(Exception e) {
    connctionFailed = true;
}

此代碼在正常條件下正常工作。 但是當沒有Internet連接時(因為路由器斷開連接或熱點連接), httpConnection.getResponseCode()不會被執行(函數不會返回)。 我怎樣才能解決這個問題?

httpConnection.setConnectTimeout(5000)是連接超時。

這不是httpConnection.getResponseCode()的超時。

如果添加httpConnection.setReadTimeout(2000)httpConnection.getResponseCode()應在沒有可用連接時拋出異常。

你可能在更高層有一個try catch塊,它正在捕獲sockettimeout異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM