我使用下面的代碼來檢查網絡連接:Java的:通過平因特網連接檢查,以谷歌沒有工作
try {
HttpURLConnection httpConnection = (HttpURLConnection) (new URL("http://clients3.google.com/generate_204").openConnection());
httpConnection.setRequestProperty("User-Agent", "Test");
httpConnection.setRequestProperty("Connection", "close");
httpConnection.setConnectTimeout(15000);
httpConnection.connect();
if (httpConnection.getResponseCode() == 204 && httpConnection.getContentLength() == 0){
//internet is avialable
return;
}else{
Log.e(TAG, "Internet connection error: " + httpConnection.getResponseCode()
+ ": " + httpConnection.getResponseMessage());
}
} catch (IOException e) {
Log.e(TAG, "Internet connection error: " + e);
}
,我得到以下回應: 代碼:204 消息:沒有內容
但內容長度大於0,因此它失敗。 有人能幫我理解發生了什麼嗎?
感謝, 陽光
我用Java 1.7_45運行你的例子,它按預期工作。 ? – morpheus05 2014-10-20 20:01:00
在某些手機上的內容長度似乎不是0.是否可以接受? – Sunny 2014-10-20 20:02:09
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html表示:「204響應絕不能包含消息體,因此總是由頭字段後面的第一個空行終止。 「也許這個換行符被視爲一些實現的內容? – morpheus05 2014-10-20 20:04:00