HttpClient获取可用的代理ip
通过HttpClient获取可用的代理ip
getProxy类
package getProxy;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.*;
import java.util.Map.Entry;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.NameValuePair;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
public class getProxy {
static String [] arr = new String[2000];
static int index = 0;
static int i = 10;
static int j = 37;
static int k = 1;
static int l = 1;
static RequestConfig config; //配置代理主机ip与端口
static CredentialsProvider provider; //配置代理登陆账号和密码
public static void main(String str[]){
for(j = 36; j < 255; j++)
{
for(k = 6; k < 255; k++)
{
for(l = 0; l < 255; l++)
{
System.out.println(""+i+"."+j+"."+k+"."+l+"");
//创建代理
HttpHost proxy = new HttpHost("10."+j+"."+k+"."+l+"" ,3128);
provider = new BasicCredentialsProvider();
/**
* 配置请求参数实例
*/
//代理配置代理ip和端口
config = RequestConfig.custom().setProxy(proxy) //HttpGet代理配置信息
.setConnectTimeout(6000) //连接主机服务超时时间
.setSocketTimeout(6000) //数据读取超时时间
.build();
//代理配置账号密码
provider.setCredentials(new AuthScope(proxy), new UsernamePasswordCredentials("F1232170","44DRunBA"));
getProxy.doGet("https://www.baidu.com");
}
}
}
for(int u = 0; u < index; u++)
{
System.out.println(arr[u]);
}
}
public static String doGet(String url) {
CloseableHttpClient httpClient = null;
CloseableHttpResponse response = null;
String result = "";
try {
// 创建httpGet远程连接实例
HttpGet httpGet = new HttpGet(url);
//代理配置代理ip和端口
httpGet.setConfig(config);
// 设置请求头信息,鉴权
httpGet.setHeader("Authorization", "Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0");
// 通过址默认配置创建一个httpClient实例
httpClient = HttpClients.createDefault();
//HttpClient请求配置代理账号和密码
httpClient = HttpClients.custom().setDefaultCredentialsProvider(provider).build();
//开始httpClient请求
response = httpClient.execute(httpGet);
System.out.print("可以用的ip:");
System.out.println(" "+i+" . "+j+" . "+k+" . "+l+" ");
arr[index] = " "+i+" . "+j+" . "+k+" . "+l+" ";
index = index + 1;
// 通过返回对象获取返回数据
HttpEntity entity = response.getEntity();
// 通过EntityUtils中的toString方法将结果转换为字符串
result = EntityUtils.toString(entity);
} catch (ClientProtocolException e) {
//e.printStackTrace();
} catch (IOException e) {
//e.printStackTrace();
} finally {
// 关闭资源
if (null != response) {
try {
response.close();
} catch (IOException e) {
// e.printStackTrace();
}
}
if (null != httpClient) {
try {
httpClient.close();
} catch (IOException e) {
// e.printStackTrace();
}
}
}
return result;
}
}