1

我正在尝试使用用户定义的代理设置连接到 Internet。我已将其设置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 秒内终止。

有人可以帮我解决我的代码中的问题吗?

提前致谢。

4

1 回答 1

2

尝试也添加uc.setConnectTimeout(5000);

编辑:最终解决方案

uc.connect();在获取响应代码之前使用。

此外,在打开 HttpURLConnection 时添加代理配置。

像这样 :

HttpURLConnection uc = (HttpURLConnection) u.openConnection(new Proxy(Proxy.Type.HTTP, new InetSocketAddress(myProxyHost, Integer.parseInt(myProxyPort))));
于 2013-04-22T06:31:31.137 回答