HttpClient获取可用的代理ip

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;
    }
    	
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值