util

阅读: 评论:0

util

util

HttpClientUtil 可根据需求修改

import hk.ption.CommException;
import org.apache.http.Header;
import org.apache.fig.RequestConfig;
import org.apache.hods.CloseableHttpResponse;
import org.apache.hods.HttpGet;
import org.apache.hods.HttpPost;
import org.apache.hods.HttpRequestBase;
import org.fig.Registry;
import org.fig.RegistryBuilder;
import org.socket.ConnectionSocketFactory;
import org.socket.PlainConnectionSocketFactory;
import org.ssl.SSLConnectionSocketFactory;
import org.ity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.PoolingHttpClientConnectionManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.StringUtils;import javax.ssl.SSLContext;
import javax.ssl.TrustManager;
import javax.ssl.X509TrustManager;
import java.io.IOException;
import java.io.InputStream;
import java.security.GeneralSecurityException;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import CertificateException;
import X509Certificate;
import java.util.Map;public class HttpClientUtils {private static final Logger log = Logger(HttpClientUtils.class);public static InputStream doGet(String url) throws IOException, GeneralSecurityException {return doGet(url, null, -1);}public static InputStream doGet(String url, int timeOut) throws IOException, GeneralSecurityException {return doGet(url, null, timeOut);}public static InputStream doGet(String url, Map<String, String> headers) throws IOException, GeneralSecurityException {return doGet(url, headers, -1);}public static InputStream doGet(String url, Map<String, String> headers, int timeOut) throws IOException, GeneralSecurityException {url = im().replace("\", "/");CloseableHttpClient client = getClient(url);HttpGet httpGet = new HttpGet(url);RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(timeOut).build();httpGet.setConfig(requestConfig);addHeaders(httpGet, headers);return execute(client, httpGet);}public static InputStream doPost(String url, String entity) throws GeneralSecurityException, IOException {return doPost(url, entity, null, null, -1);}public static InputStream doPost(String url, String entity, int timeOut) throws GeneralSecurityException, IOException {return doPost(url, entity, null, null, timeOut);}public static InputStream doPost(String url, String entity, Map<String, String> headers) throws GeneralSecurityException, IOException {return doPost(url, entity, headers, null, -1);}public static InputStream doPost(String url, String entity, Map<String, String> headers, String charset, int timeOut) throws GeneralSecurityException, IOException {if (!StringUtils.hasText(charset)) {charset = "UTF-8";}url = im().replace("\", "/");CloseableHttpClient client = getClient(url);HttpPost httpPost = new HttpPost(url);RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(timeOut * 1000).build();httpPost.setConfig(requestConfig);addHeaders(httpPost, headers);Header contentType = FirstHeader("Content-Type");if (contentType == null) {httpPost.addHeader("Content-Type", "application/json; charset=utf-8");}httpPost.setEntity(new StringEntity(entity, charset));return execute(client, httpPost);}private static CloseableHttpClient getClient(String url) throws GeneralSecurityException {if (!StringUtils.hasText(url)) {throw new CommException("url is empty");}CloseableHttpClient httpClient;if (UpperCase().contains("HTTPS")) {httpClient = createIgnoreVerifyHttpClient();} else {httpClient = ateDefault();}return httpClient;}private static void addHeaders(HttpRequestBase http, Map<String, String> headers) {if (headers == null) {return;}for (Map.Entry<String, String> entry : Set()) {http.Key(), Value());}}private static InputStream execute(CloseableHttpClient httpClient, HttpRequestBase requestBase) throws IOException {InputStream result = null;CloseableHttpResponse response = null;try {response = ute(requestBase);int statusCode = StatusLine().getStatusCode();log.info("HttpClient statusCode={}", statusCode);if (statusCode == 200) {result = Entity().getContent();} else {("HttpClient is fail,errorCode={}", statusCode);}} catch (Exception e) {("HttpClient error:{}", e);}return result;}/*** To bypass validation** @return* @throws NoSuchAlgorithmException* @throws KeyManagementException*/public static CloseableHttpClient createIgnoreVerifyHttpClient() throws GeneralSecurityException {SSLContext sslContext = Instance("TLS");X509TrustManager trustManager = new X509TrustManager() {@Overridepublic void checkClientTrusted(X509Certificate[] paramArrayOfX509Certificate,String paramString) throws CertificateException {}@Overridepublic void checkServerTrusted(X509Certificate[] paramArrayOfX509Certificate,String paramString) throws CertificateException {}@Overridepublic X509Certificate[] getAcceptedIssuers() {return null;}};sslContext.init(null, new TrustManager[]{trustManager}, null);Registry<ConnectionSocketFactory> socketFactoryRegistry =RegistryBuilder.<ConnectionSocketFactory>create().register("http", PlainConnectionSocketFactory.INSTANCE).register("https", new SSLConnectionSocketFactory(sslContext)).build();PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry);CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(connManager).build();return httpClient;}}

本文发布于:2024-02-04 15:46:14,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170710867656809.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:util
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23