关键是设置系统属性
System.setProperty("http.proxySet", "true");
System.setProperty("http.proxyHost", proxy[0]);
System.setProperty("http.proxyPort", proxy[1]);
直接上代码
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HttpProxy {
private static String[] proxyArray = {
"120.52.72.48:80",
"110.52.232.60:80",
"117.135.251.133:80",
"122.140.245.106:8000",
"119.255.9.93:80",
"117.135.252.227:80",
"120.198.231.22:8080",
"117.158.149.34:80",
"183.239.167.122:8080" };
public static void main(String[] args) throws Exception {
final String spec = "http://1212.ip138.com/ic.asp";
final String charset = "GB2312";
System.out.println("不使用代理");
parse(sendHttpPost(spec, charset));
for (int i = 0; i < proxyArray.length; i++) {
try {
String[] proxy = proxyArray[i].split(":");
System.setProperty("http.proxySet", "true");
System.setProperty("http.proxyHost", proxy[0]);
System.setProperty("http.proxyPort", proxy[1]);
System.out.println("代理IP是: " + proxyArray[i]);
parse(sendHttpPost(spec, charset));
}
catch (Throwable t) {
System.out.println(t);
}
}
}
private static void parse(String result) {
Pattern pattern = Pattern.compile("<center>(.*)</center>");
Matcher matcher = pattern.matcher(result);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
System.out.println();
}
private static String sendHttpPost(String spec, String charset) throws MalformedURLException, IOException {
URL url = new URL(spec);
URLConnection connection = url.openConnection();
HttpURLConnection httpURLConnection = (HttpURLConnection) connection;
StringBuffer resultBuffer = new StringBuffer();
if (httpURLConnection.getResponseCode() == 200) {
try (BufferedReader reader = new BufferedReader(
new InputStreamReader(httpURLConnection.getInputStream(), charset))) {
String tempLine = null;
while ((tempLine = reader.readLine()) != null) {
resultBuffer.append(tempLine);
}
}
}
return resultBuffer.toString();
}
}
输出
不使用代理
您的IP是:[183.15.246.30] 来自:广东省深圳市 电信
代理IP是: 120.52.72.48:80
您的IP是:[221.221.163.195] 来自:北京市北京市 联通
代理IP是: 110.52.232.60:80
您的IP是:[183.15.246.30] 来自:广东省深圳市 电信
代理IP是: 117.135.251.133:80
您的IP是:[117.135.251.133] 来自:贵州省 移动
代理IP是: 122.140.245.106:8000
您的IP是:[183.15.246.30] 来自:广东省深圳市 电信
代理IP是: 119.255.9.93:80
您的IP是:[183.15.246.30] 来自:广东省深圳市 电信
代理IP是: 117.135.252.227:80
您的IP是:[117.135.252.227] 来自:贵州省 移动
代理IP是: 120.198.231.22:8080
您的IP是:[120.198.231.22] 来自:广东省东莞市 移动
代理IP是: 117.158.149.34:80
您的IP是:[183.15.246.30] 来自:广东省深圳市 电信
代理IP是: 183.239.167.122:8080
您的IP是:[183.239.167.122] 来自:广东省深圳市 移动
转载于:https://blog.51cto.com/wangzhichao/1751648