https忽略证书错误

2019独角兽企业重金招聘Python工程师标准>>> hot3.png


			org.apache.httpcomponents
			httpclient
			4.3.6
		
package http;

import java.io.IOException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.List;

import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;

import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
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.BasicCookieStore;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

public class HttpUtil {

	private static CloseableHttpClient httpclient = null;
	private static BasicCookieStore cookieStore = new BasicCookieStore();

	public static final String CHARSET_UTF8 = "utf8";

	/**
	 * 获取 CloseableHttpClient
	 * 
	 * @return
	 */
	private static CloseableHttpClient getHttpClient() {
		CloseableHttpClient httpClient = null;
		httpClient = HttpClients.custom().setSslcontext(getSslcontext())
				.setDefaultRequestConfig(getRequestConfig())
				.setDefaultCookieStore(cookieStore).build();
		return httpClient;
	}

	/**
	 * 
	 * @return
	 */
	private static RequestConfig getRequestConfig() {
		RequestConfig defaultRequestConfig = RequestConfig.custom()
				.setConnectionRequestTimeout(1000).build();
		return defaultRequestConfig;

	}

	private static SSLContext getSslcontext() {
		SSLContext sslContext = null;
		try {
			sslContext = SSLContext.getInstance("TLS");
			TrustManager tm = new X509TrustManager() {
				public void checkClientTrusted(X509Certificate[] chain,
						String authType) throws CertificateException {
				}

				public void checkServerTrusted(X509Certificate[] chain,
						String authType) throws CertificateException {
				}

				public X509Certificate[] getAcceptedIssuers() {
					return null;
				}
			};
			sslContext.init(null, new TrustManager[] { tm }, null);

		} catch (Exception e) {
			e.printStackTrace();
		}
		return sslContext;
	}

	public static String getWithCookie(String url, String charset) {
		String page = null;
		CloseableHttpResponse response = null;
		if (httpclient == null) {
			httpclient = getHttpClient();
		}
		HttpGet httpGet = new HttpGet(url);
		try {
			response = httpclient.execute(httpGet);
			HttpEntity entity = response.getEntity();
			page = EntityUtils.toString(entity, charset);

			EntityUtils.consume(entity);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (response != null) {
				try {
					response.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		return page;
	}

	public static String postWithCookie(String uri, String charset,
			List params) {
		String resStr = null;
		HttpPost httpPost = new HttpPost(uri);
		CloseableHttpResponse response = null;
		if (httpclient == null) {
			httpclient = new IgnoreCAHttpClient();
		}
		try {
			httpPost.setEntity(new UrlEncodedFormEntity(params));
			response = httpclient.execute(httpPost);
			System.out.println(response.getStatusLine());
			HttpEntity entity2 = response.getEntity();
			EntityUtils.toString(entity2, charset);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				response.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return resStr;

	}

}


转载于:https://my.oschina.net/liyonglee/blog/359571

你可能感兴趣的:(c/c++,java,python)