3 回答

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

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