プロキシを使用してシステムがインターネットに接続しているかどうかを確認するのに役立つメソッドを作成しました。これは次のとおりです。
try {
System.out.println("Checking internet connection availability.....");
URL u = new URL("http://www.google.com/");
HttpURLConnection uc = (HttpURLConnection) u.openConnection();
uc.setReadTimeout(1);//I have tried this without timeout and with it too. But it didnt work
System.out.println(uc.getResponseCode());
} catch (Exception ex) {
System.out.println("Unable to connect to internet without proxy.....");
System.out.println("Checking for any proxy settings from the PC");
System.setProperty("java.net.useSystemProxies", "true");
try {
System.setProperty("java.net.useSystemProxies", "true");
URL u = new URL("http://www.google.com/");
HttpURLConnection uc = (HttpURLConnection) u.openConnection();
System.out.println(uc.getResponseCode());
System.out.println("Internet connection available");
} catch (Exception e) {
System.out.println("Internet connection not available :(");
}
}
最初に、プロキシなしで URL 接続を開こうとしています (システムにインターネットに接続するためのプロキシがないことを前提としています)。タイムアウトを 1 ミリ秒に設定しました。サイトから応答コードを取得しようとしています。エラーが発生した場合 (タイムアウトなど)、catch ブロックで を に設定して、システムのプロキシを使用してインターネットに接続しようとしていuseSystemProxies
ますtrue
。しかし、その後もサイトからの応答が得られません。
プロキシ設定のあるシステムを使用しています。
私もキャッチブロックで次のことを試しました
Proxy next = ProxySelector.getDefault().select(new URI("http://www.google.com/")).iterator().next();
if (next.address() != null) {
System.out.println("Detecting Proxy configurations.....");
String proxy = next.address().toString();
String proxyHost = proxy.substring(0, proxy.indexOf(":"));
String proxyPort = proxy.substring(proxy.indexOf(":") + 1);
System.out.println("Proxy Configuration : " + proxyHost + " @ " + proxyPort);
}
上記のコード ブロックも機能しません。誰でもこれで私を助けることができますか?