原帖:http://bbs.csdn.net/topics/390416704
//可以使用代理来实现
public static void main(String[] args) throws Exception {
URL url = new URL("http://www.******.com/");
Proxy proxy = new Proxy(Proxy.Type.HTTP,
new InetSocketAddress(InetAddress.getByAddress(new byte[]{(byte)192,(byte)168,(byte)119,(byte)182}),80));
HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection(proxy);
InputStream in = httpUrlConn.getInputStream();
String response = FileUtil.getContent(in, "UTF-8");
System.out.println(response);
}是如何用代码实现绑定本机host的,使用代理服务器来实现的。现在我的问题是:当我们使用代理服务器获取http://www.***.com的时候,我们本机的socket先连上代理服务器的socket,然后,代理服务器再去真正的获取http://www.***.com,代理服务器应该也是首先查找本机的host的吧?但是,我测试的结果是,代理服务器上的host可以随便设置。非常不解!
//可以使用代理来实现
public static void main(String[] args) throws Exception {
URL url = new URL("http://www.******.com/");
Proxy proxy = new Proxy(Proxy.Type.HTTP,
new InetSocketAddress(InetAddress.getByAddress(new byte[]{(byte)192,(byte)168,(byte)119,(byte)182}),80));
HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection(proxy);
InputStream in = httpUrlConn.getInputStream();
String response = FileUtil.getContent(in, "UTF-8");
System.out.println(response);
}是如何用代码实现绑定本机host的,使用代理服务器来实现的。现在我的问题是:当我们使用代理服务器获取http://www.***.com的时候,我们本机的socket先连上代理服务器的socket,然后,代理服务器再去真正的获取http://www.***.com,代理服务器应该也是首先查找本机的host的吧?但是,我测试的结果是,代理服务器上的host可以随便设置。非常不解!
public static void main(String[] args) {
try {
URL url = new URL("http://www.nonexists.com/");
// 创建代理服务器
InetSocketAddress addr = new InetSocketAddress("localhost",80);
// Proxy proxy = new Proxy(Proxy.Type.SOCKS, addr); // Socket 代理
Proxy proxy = new Proxy(Proxy.Type.HTTP, addr); // http 代理
// 结束
URLConnection conn = url.openConnection(proxy);
InputStream in = conn.getInputStream();
// InputStream in = url.openStream();
String s = FileUtil.getContent(in);
System.out.println(s);
} catch (Exception e) {
e.printStackTrace();
}
}
//我是想把本机的tomcat当成代理服务器,然后用tomcat去访问一个不存在的url,结果返回了tomcat的主页。