import java.io.BufferedInputStream;
import java.net.URL;
import java.net.URLConnection;
public class TestProxyIp {
public static void main(String args[]){
//System.getProperties().setProperty("proxySet", "true"); //如果不设置,只要代理IP和代理端口正确,此项不设置也可以
System.getProperties().setProperty("http.proxyHost", "218.26.204.66");
System.getProperties().setProperty("http.proxyPort", "8080");
System.out.println(getHtml("http://www.ip138.com/ip2city.asp")); //判断代理是否设置成功
}
private static String getHtml(String address){
StringBuffer html = new StringBuffer();
String result = null;
try{
URL url = new URL(address);
URLConnection conn = url.openConnection();
conn.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB5; .NET CLR 2.0.50727; CIBA)");
BufferedInputStream in = new BufferedInputStream(conn.getInputStream());
try {
String inputLine;
byte[] buf = new byte[4096];
int bytesRead = 0;
while (bytesRead >= 0) {
inputLine = new String(buf, 0, bytesRead, "ISO-8859-1");
html.append(inputLine);
bytesRead = in.read(buf);
inputLine = null;
}
buf = null;
} finally {
in.close();
conn = null;
url = null;
}
result = new String(html.toString().trim().getBytes("ISO-8859-1"), "gb2312").toLowerCase();
}catch(Exception e){
e.printStackTrace();
return null;
}
html = null;
return result;
}
}
更多 0
14 个解决方案
#1
我之前也是这么用的,system.setproperty这样不行。具体为什么,也请哪位知道的告诉我下。
关于你这个,我可以理解为爬虫,我实现过,我找代码去,稍等哈啊
关于你这个,我可以理解为爬虫,我实现过,我找代码去,稍等哈啊
#2
//设置代理IP和代理端口
client.getHostConfiguration().setProxy(ipPort.getIp(), ipPort.getPort());
//设置用户名和密码
if (StringUtil.isNotEmpty(ipPort.getUsername())
&& StringUtil.isNotEmpty(ipPort.getPassword())) {
Credentials upcreds = new UsernamePasswordCredentials(ipPort.getUsername(), ipPort.getPassword());
client.getState().setProxyCredentials(AuthScope.ANY, upcreds);
}
我是用httpclient做的,我想java源生的类应该也能支持,你自己试试。
#3
我用System.getProperties().setProperty("proxySet", "true");
System.getProperties().setProperty("http.proxyHost", "xxxx");
System.getProperties().setProperty("http.proxyPort", "8080");
可以的
System.getProperties().setProperty("http.proxyHost", "xxxx");
System.getProperties().setProperty("http.proxyPort", "8080");
可以的
#4
地址应该是System.out.println(getHtml("
http://iframe.ip138.com/ic.asp"));
不是System.out.println(getHtml(" http://www.ip138.com/ip2city.asp")); /
不是System.out.println(getHtml(" http://www.ip138.com/ip2city.asp")); /
#5
多谢。我再研究研究。
#6
一样还是显示原本的ip。那个代理ip和端口我用ie试过,是没问题的。会不会因为用的是wifi的问题,应该没什么关系。。。。
#7
你复制我的代码可以连上代理吗?
#8
你本机ip 和代理ip 不一样。
现在显示要显示那个啊。
现在显示要显示那个啊。
#9
代理是永远的疼,java获取客户端ip,大材小用
#10
我是希望显示代理ip。但是网站返回的还是原本的ip。
#11
我现在用代理ip连一个可以显示ip的网站,但是网站返回内容显示我还是用本机ip访问的。问题就在这里。
#12
#13
楼主问题解决了吗?求分享求分享啊
#14
楼主问题解决了吗?求分享求分享啊
#1
我之前也是这么用的,system.setproperty这样不行。具体为什么,也请哪位知道的告诉我下。
关于你这个,我可以理解为爬虫,我实现过,我找代码去,稍等哈啊
关于你这个,我可以理解为爬虫,我实现过,我找代码去,稍等哈啊
#2
//设置代理IP和代理端口
client.getHostConfiguration().setProxy(ipPort.getIp(), ipPort.getPort());
//设置用户名和密码
if (StringUtil.isNotEmpty(ipPort.getUsername())
&& StringUtil.isNotEmpty(ipPort.getPassword())) {
Credentials upcreds = new UsernamePasswordCredentials(ipPort.getUsername(), ipPort.getPassword());
client.getState().setProxyCredentials(AuthScope.ANY, upcreds);
}
我是用httpclient做的,我想java源生的类应该也能支持,你自己试试。
#3
我用System.getProperties().setProperty("proxySet", "true");
System.getProperties().setProperty("http.proxyHost", "xxxx");
System.getProperties().setProperty("http.proxyPort", "8080");
可以的
System.getProperties().setProperty("http.proxyHost", "xxxx");
System.getProperties().setProperty("http.proxyPort", "8080");
可以的
#4
地址应该是System.out.println(getHtml("
http://iframe.ip138.com/ic.asp"));
不是System.out.println(getHtml(" http://www.ip138.com/ip2city.asp")); /
不是System.out.println(getHtml(" http://www.ip138.com/ip2city.asp")); /
#5
多谢。我再研究研究。
#6
一样还是显示原本的ip。那个代理ip和端口我用ie试过,是没问题的。会不会因为用的是wifi的问题,应该没什么关系。。。。
#7
你复制我的代码可以连上代理吗?
#8
你本机ip 和代理ip 不一样。
现在显示要显示那个啊。
现在显示要显示那个啊。
#9
代理是永远的疼,java获取客户端ip,大材小用
#10
我是希望显示代理ip。但是网站返回的还是原本的ip。
#11
我现在用代理ip连一个可以显示ip的网站,但是网站返回内容显示我还是用本机ip访问的。问题就在这里。
#12
#13
楼主问题解决了吗?求分享求分享啊
#14
楼主问题解决了吗?求分享求分享啊