import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Authenticator;
import java.net.InetSocketAddress;
import java.net.PasswordAuthentication;
import java.net.Proxy;
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ProxyConnectionTest {
public static void main(String[] args) throws IOException {
// 设置代理 地址和密码
Proxy proxy = new Proxy(Proxy.Type.HTTP,
new InetSocketAddress(host, port));
// 设置代理的密码验证
Authenticator auth = new Authenticator() {
private PasswordAuthentication pa =
new PasswordAuthentication(username, password.toCharArray());
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return pa;
}
};
Authenticator.setDefault(auth);
// 打开连接
System.out.println("connecting...");
URL url = new URL("http://www.iteye.com/");
URLConnection conn = url.openConnection(proxy);
// 读取内容
InputStreamReader isr = new InputStreamReader(conn.getInputStream());
BufferedReader br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
System.out.println("done.");
}
}
然而,这里指定一些URL时总是出现这样那样的错误。比如就无法正常读取http://news.google.com,很多网站的域名后面必须加"/",如果"http://www.iteye.com/"才能取到内容
标签:java,URL,import,代理,Authenticator,new,Java,net From: https://blog.51cto.com/u_16237557/7262731