我正在尝试使用用户定义的代理设置连接到互联网。我已将setReadTimeout
设置为5秒。如果配置的代理不正确,那么我们将无法连接到互联网,我使用以下代码,但读取超时完全没有发生。
URL u = new URL("http://www.google.com/");
System.out.println("Checking internet connection availability.....");
System.setProperty("java.net.useSystemProxies", "true");
System.setProperty("http.proxyHost", proxyHost);
System.setProperty("http.proxyPort", proxyPort);
HttpURLConnection uc = (HttpURLConnection) u.openConnection();
uc.setReadTimeout(5000);
System.out.println("Response code : " + uc.getResponseCode());
System.out.println("Internet connection is available.....");
如果我运行上面的代码,那么程序将继续执行,并且不会在5秒内终止。
有人可以帮我解决我的代码中的问题吗?
提前致谢。
答案 0 :(得分:2)
尝试添加uc.setConnectTimeout(5000);
编辑:最终解决方案
在获取响应代码之前使用uc.connect();
。
此外,在打开HttpURLConnection时添加代理配置。
像这样:
HttpURLConnection uc = (HttpURLConnection) u.openConnection(new Proxy(Proxy.Type.HTTP, new InetSocketAddress(myProxyHost, Integer.parseInt(myProxyPort))));