3 回答

TA貢獻1859條經(jīng)驗 獲得超6個贊
您應(yīng)該連接到實際應(yīng)用程序所需的位置。否則,您正在測試您是否與某個無關(guān)的地方有聯(lián)系(在這種情況下為Google)。
特別是,如果您正在嘗試與Web服務(wù)進行通信,并且如果您可以控制Web服務(wù),那么擁有某種廉價的“獲取狀態(tài)”Web方法將是一個好主意。通過這種方式,您可以更好地了解您的“真實”通話是否可行。
在其他情況下,只打開一個應(yīng)該打開的端口的連接可能就足夠了 - 或者發(fā)送ping。InetAddress.isReachable
可能是適合您需求的API。

TA貢獻1943條經(jīng)驗 獲得超7個贊
人們建議使用INetAddress.isReachable。問題是某些站點配置其防火墻以阻止ICMP Ping消息。因此,即使Web服務(wù)可訪問,“ping”也可能會失敗。
當然,反過來也是如此。即使Web服務(wù)器已關(guān)閉,主機也可能會響應(yīng)ping。
當然,由于本地防火墻限制,計算機可能無法直接連接到某些(或所有)Web服務(wù)器。
根本問題是“可以連接到互聯(lián)網(wǎng)”是一個定義不明確的問題,如果沒有這樣的事情很難測試:
有關(guān)用戶機器和“本地”網(wǎng)絡(luò)環(huán)境的信息,以及
有關(guān)應(yīng)用程序需要訪問的信息。
因此,一般來說,最簡單的解決方案是讓應(yīng)用程序只是嘗試訪問它需要訪問的任何內(nèi)容,并依靠人工智能來進行診斷。
添加回答
舉報