Java 检查代理是否工作

Java 检查代理是否工作,java,proxy,Java,Proxy,我正在检查代理服务器是否正常工作。我正在使用此代码,但它似乎工作不正常。它返回true,但当我尝试使用代理时,程序超时 Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("ip", port)); int timeout = 9000; URL url = new URI("http://google.com/").toURL(); URLConnection connection = url.openConnectio

我正在检查代理服务器是否正常工作。我正在使用此代码,但它似乎工作不正常。它返回true,但当我尝试使用代理时,程序超时

Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("ip", port));
int timeout = 9000;
URL url = new URI("http://google.com/").toURL();
URLConnection connection = url.openConnection(proxy); 
connection.setConnectTimeout((int) timeout); 
connection.setReadTimeout((int) timeout);       
long start = System.currentTimeMillis(); 
connection.connect(); 
long delay = System.currentTimeMillis() - start; 
return delay <= timeout;
Proxy-Proxy=新代理(Proxy.Type.HTTP,新的InetSocketAddress(“ip”,端口));
int超时=9000;
URL=新的URI(“http://google.com/)。toURL();
URLConnection=url.openConnection(代理);
setConnectTimeout((int)timeout);
setReadTimeout((int)timeout);
长启动=System.currentTimeMillis();
connection.connect();
长延迟=System.currentTimeMillis()-启动;

return delay只要按照您需要的正常方式使用代理,并在出现异常时进行处理即可


像这样的把戏本质上是预测未来的尝试。他们不可能工作。

超时做什么?但是这个代码没有意义。延迟不可能大于超时,否则会引发异常。但是有许多公共代理,其中大多数都已失效,因此需要以某种方式筛选出好的代理。失效的公共代理根本不是代理。如果您有一个公共代理列表,其中许多已经失效,请剔除该列表。