我花了很长时间才能在我的办公室找到我的Java连接代理。现在我让它工作了,但它非常慢。
我使用以下代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Authenticator;
import java.net.InetSocketAddress;
import java.net.MalformedURLException;
import java.net.PasswordAuthentication;
import java.net.Proxy;
import java.net.URL;
import java.net.URLConnection;
public class Test {
public static void main(String[] args) {
long millis = System.currentTimeMillis();
URL url;
InputStream is = null;
BufferedReader br;
String line;
try {
Authenticator authenticator = new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return (new PasswordAuthentication("xxxx",
"xxxx".toCharArray()));
}
};
Authenticator.setDefault(authenticator);
url = new URL("http://stackoverflow.com/");
URLConnection conn = url.openConnection(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("xxx", xxx)));
is = conn.getInputStream();
br = new BufferedReader(new InputStreamReader(is));
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (MalformedURLException mue) {
mue.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
} finally {
try {
if (is != null) is.close();
} catch (IOException ioe) {
// nothing to see here
}
}
System.out.println("Duration: "+(System.currentTimeMillis()-millis));
}
}
当我运行它时,输出如下:
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="https://stackoverflow.com/">here</a>.</h2>
</body></html>
Duration: 222856
如您所见,代理正在运行。我确实得到了网页。但它在显示网页内容之前等了很长时间(超过222秒:O)。我不知道这里可能出现什么问题。
关于环境的一些信息:我正在办公室VDI。谷歌Chrome和IE有互联网连接,但其他程序没有。通过大量的Google搜索,我找到了正确的代理设置。