httpclient支持https,http请求

public static HttpClient getHttpClient(final String name) {
		PoolingClientConnectionManager manager = getPoolingConnectionManager(500);
		HttpClient client = new DefaultHttpClient(manager) {
			{
				List<String> uAs = userAgents.get(name);
				int size = uAs.size();
				long time = System.currentTimeMillis();
				int index = (int) (time % size);
				this.getParams().setParameter(CoreProtocolPNames.USER_AGENT,
						uAs.get((int) (time % size)));
				(this.getParams())
						.setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,
								60000)
						.setParameter(CoreConnectionPNames.SO_TIMEOUT, 30000)
						.setIntParameter(ClientPNames.MAX_REDIRECTS, 3);
				this.setHttpRequestRetryHandler(new DefaultHttpRequestRetryHandler(
						5, true));
			}
		};
		try {
			SchemeRegistry sRegistry = client.getConnectionManager()
					.getSchemeRegistry();
			SSLContext ctx = SSLContext.getInstance("SSL");//TLS
			// Implementation of a trust manager for X509 certificates
			X509TrustManager tm = new X509TrustManager() {

				public void checkClientTrusted(X509Certificate[] xcs,
						String string) throws CertificateException {

				}

				public void checkServerTrusted(X509Certificate[] xcs,
						String string) throws CertificateException {
				}

				public X509Certificate[] getAcceptedIssuers() {
					return null;
				}
			};
			ctx.init(null, new TrustManager[] { tm }, null);
			SSLSocketFactory ssf = new SSLSocketFactory(ctx);

			sRegistry.register(new Scheme("https", 443, ssf));
			sRegistry.register(new Scheme("http", 80, PlainSocketFactory
					.getSocketFactory()));

			// HttpHost host = new HttpHost("121.229.115.167", 8118);
			// this.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,
			// host);
			// this.setRoutePlanner(new HttpRoutePlanner(){
			//
			// private final String[] HOSTS_NEED_PROXY = new
			// String[]{".sohu.com"};
			// @Override
			// public HttpRoute determineRoute(HttpHost target, HttpRequest
			// request, HttpContext context) throws HttpException {
			// String host = target.getHostName();
			// boolean proxy = false;
			// for(int index = 0 ; index < HOSTS_NEED_PROXY.length &&
			// !proxy; ++index)
			// {
			// if(host.indexOf(HOSTS_NEED_PROXY[index])>0)proxy=true;
			// }
			// return proxy?
			// new HttpRoute(target, null,
			// proxies.get(count.get()),"https".equalsIgnoreCase(target.getSchemeName()))
			// :new
			// HttpRoute(target,/*IPs.random()*/null,"https".equalsIgnoreCase(target.getSchemeName()));
			// }
			// });
		} catch (KeyManagementException | NoSuchAlgorithmException e) {
			e.printStackTrace();
		}
		return client;
	}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值