1030 lines
47 KiB
Java
1030 lines
47 KiB
Java
|
package aiyh.utils.httpUtil.util;
|
|||
|
|
|||
|
import aiyh.utils.Util;
|
|||
|
import aiyh.utils.httpUtil.ExtendedIOUtils;
|
|||
|
import aiyh.utils.httpUtil.HttpArgsType;
|
|||
|
import aiyh.utils.httpUtil.HttpManager;
|
|||
|
import aiyh.utils.httpUtil.ResponeVo;
|
|||
|
import aiyh.utils.httpUtil.httpAsync.HttpAsyncThread;
|
|||
|
import aiyh.utils.httpUtil.httpAsync.HttpAsyncThreadCallBack;
|
|||
|
import aiyh.utils.zwl.common.ToolUtil;
|
|||
|
import com.alibaba.fastjson.JSON;
|
|||
|
import com.alibaba.fastjson.JSONObject;
|
|||
|
import com.alibaba.fastjson.serializer.SerializerFeature;
|
|||
|
import com.google.common.base.Strings;
|
|||
|
import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
|||
|
import org.apache.http.Header;
|
|||
|
import org.apache.http.HttpEntity;
|
|||
|
import org.apache.http.NameValuePair;
|
|||
|
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.*;
|
|||
|
import org.apache.http.entity.ContentType;
|
|||
|
import org.apache.http.entity.StringEntity;
|
|||
|
import org.apache.http.entity.mime.HttpMultipartMode;
|
|||
|
import org.apache.http.entity.mime.MultipartEntityBuilder;
|
|||
|
import org.apache.http.entity.mime.content.StringBody;
|
|||
|
import org.apache.http.impl.client.CloseableHttpClient;
|
|||
|
import org.apache.http.message.BasicNameValuePair;
|
|||
|
import org.apache.http.util.EntityUtils;
|
|||
|
import org.apache.log4j.Logger;
|
|||
|
import weaver.file.ImageFileManager;
|
|||
|
|
|||
|
import javax.ws.rs.core.MediaType;
|
|||
|
import java.io.*;
|
|||
|
import java.nio.charset.StandardCharsets;
|
|||
|
import java.util.*;
|
|||
|
import java.util.concurrent.*;
|
|||
|
import java.util.function.BiFunction;
|
|||
|
import java.util.function.Consumer;
|
|||
|
import java.util.function.Function;
|
|||
|
|
|||
|
/**
|
|||
|
* @author EBU7-dev1-ayh
|
|||
|
* @date 2021/8/31 0031 17:16
|
|||
|
* http请求工具 与HttpStaticUtils使用相同,说明请查看HttpStaticUtils
|
|||
|
*/
|
|||
|
|
|||
|
|
|||
|
public class HttpUtils {
|
|||
|
// 默认编码
|
|||
|
private String DEFAULT_ENCODING = "UTF-8";
|
|||
|
|
|||
|
private final ToolUtil toolUtil = new ToolUtil();
|
|||
|
|
|||
|
private final GlobalCache globalCache = new GlobalCache();
|
|||
|
// 线程池
|
|||
|
private final ThreadPoolExecutor executorService;
|
|||
|
public static final String JSON_PARAM_KEY = "JSON_PARAM_KEY";
|
|||
|
|
|||
|
public static final ThreadLocal<HttpUtilParamInfo> HTTP_UTIL_PARAM_INFO_THREAD_LOCAL = new ThreadLocal<>();
|
|||
|
|
|||
|
private static final Logger log = Util.getLogger("http_util");
|
|||
|
|
|||
|
{
|
|||
|
// private final ExecutorService executorService = Executors.newFixedThreadPool(3);
|
|||
|
ThreadFactoryBuilder threadFactoryBuilder = new ThreadFactoryBuilder();
|
|||
|
ThreadFactory threadFactory = threadFactoryBuilder.setNameFormat("util-http-pool").build();
|
|||
|
executorService = new ThreadPoolExecutor(5, 200, 0L,
|
|||
|
TimeUnit.MILLISECONDS,
|
|||
|
new LinkedBlockingQueue<>(1024),
|
|||
|
threadFactory,
|
|||
|
new ThreadPoolExecutor.AbortPolicy());
|
|||
|
}
|
|||
|
|
|||
|
public HttpUtils() {
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* basic 认证
|
|||
|
*/
|
|||
|
private CredentialsProvider credentialsProvider = null;
|
|||
|
|
|||
|
public HttpUtils(CredentialsProvider credentialsProvider) {
|
|||
|
this.credentialsProvider = credentialsProvider;
|
|||
|
}
|
|||
|
|
|||
|
public void setCredentialsProvider(CredentialsProvider credentialsProvider) {
|
|||
|
this.credentialsProvider = credentialsProvider;
|
|||
|
}
|
|||
|
|
|||
|
public GlobalCache getGlobalCache() {
|
|||
|
return globalCache;
|
|||
|
}
|
|||
|
|
|||
|
public void setDEFAULT_ENCODING() {
|
|||
|
this.DEFAULT_ENCODING = DEFAULT_ENCODING;
|
|||
|
}
|
|||
|
|
|||
|
public HttpUtils(String DEFAULT_ENCODING) {
|
|||
|
this.DEFAULT_ENCODING = DEFAULT_ENCODING;
|
|||
|
}
|
|||
|
|
|||
|
public HttpPost getHttpPost(String url) {
|
|||
|
HttpPost httpPost = new HttpPost(url);
|
|||
|
RequestConfig requestConfig = RequestConfig.custom()
|
|||
|
.setConnectTimeout(10000)
|
|||
|
.setConnectionRequestTimeout(10000)
|
|||
|
.setRedirectsEnabled(true)
|
|||
|
.build();
|
|||
|
httpPost.setConfig(requestConfig);
|
|||
|
return httpPost;
|
|||
|
}
|
|||
|
|
|||
|
public HttpGet getHttpGet(String url) {
|
|||
|
HttpGet httpGet = new HttpGet(url);
|
|||
|
RequestConfig requestConfig = RequestConfig.custom()
|
|||
|
.setConnectTimeout(10000)
|
|||
|
.setConnectionRequestTimeout(10000)
|
|||
|
.setRedirectsEnabled(true)
|
|||
|
.build();
|
|||
|
httpGet.setConfig(requestConfig);
|
|||
|
return httpGet;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* get请求
|
|||
|
*
|
|||
|
* @param url 请求地址
|
|||
|
* @return 请求结果
|
|||
|
* @throws IOException io异常
|
|||
|
*/
|
|||
|
public ResponeVo apiGet(String url) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> params = paramsHandle(null);
|
|||
|
String getUrl = urlHandle(url, params);
|
|||
|
Map<String, String> headers = headersHandle(null);
|
|||
|
HttpGet httpGet = new HttpGet(getUrl.trim());
|
|||
|
for (Map.Entry<String, String> entry : headers.entrySet()) {
|
|||
|
httpGet.setHeader(entry.getKey(), entry.getValue());
|
|||
|
}
|
|||
|
try {
|
|||
|
HttpUtilParamInfo httpUtilParamInfo = new HttpUtilParamInfo();
|
|||
|
httpUtilParamInfo.setHeard(headers);
|
|||
|
httpUtilParamInfo.setUrl(getUrl.trim());
|
|||
|
httpUtilParamInfo.setSendDate(new Date());
|
|||
|
httpUtilParamInfo.setParams(params);
|
|||
|
HTTP_UTIL_PARAM_INFO_THREAD_LOCAL.set(httpUtilParamInfo);
|
|||
|
} catch (Exception ignore) {
|
|||
|
|
|||
|
}
|
|||
|
return baseRequest(httpConnection, httpGet);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* delete请求
|
|||
|
*
|
|||
|
* @param url 请求地址
|
|||
|
* @return 请求结果
|
|||
|
* @throws IOException io异常
|
|||
|
*/
|
|||
|
public ResponeVo apiDelete(String url) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> params = paramsHandle(null);
|
|||
|
String getUrl = urlHandle(url, params);
|
|||
|
Map<String, String> headers = headersHandle(null);
|
|||
|
HttpDelete httpDelete = new HttpDelete(getUrl.trim());
|
|||
|
for (Map.Entry<String, String> entry : headers.entrySet()) {
|
|||
|
httpDelete.setHeader(entry.getKey(), entry.getValue());
|
|||
|
}
|
|||
|
try {
|
|||
|
HttpUtilParamInfo httpUtilParamInfo = new HttpUtilParamInfo();
|
|||
|
httpUtilParamInfo.setHeard(headers);
|
|||
|
httpUtilParamInfo.setParams(params);
|
|||
|
httpUtilParamInfo.setSendDate(new Date());
|
|||
|
httpUtilParamInfo.setUrl(getUrl.trim());
|
|||
|
HTTP_UTIL_PARAM_INFO_THREAD_LOCAL.set(httpUtilParamInfo);
|
|||
|
} catch (Exception ignore) {
|
|||
|
|
|||
|
}
|
|||
|
return baseRequest(httpConnection, httpDelete);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* get请求
|
|||
|
*
|
|||
|
* @param url 请求地址
|
|||
|
* @param headers 请求头
|
|||
|
* @return 请求结果
|
|||
|
* @throws IOException io异常
|
|||
|
*/
|
|||
|
public ResponeVo apiGet(String url, Map<String, String> headers) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> params = paramsHandle(null);
|
|||
|
String getUrl = urlHandle(url, params);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
HttpGet httpGet = new HttpGet(getUrl.trim());
|
|||
|
for (Map.Entry<String, String> entry : headerMap.entrySet()) {
|
|||
|
httpGet.setHeader(entry.getKey(), entry.getValue());
|
|||
|
}
|
|||
|
try {
|
|||
|
HttpUtilParamInfo httpUtilParamInfo = new HttpUtilParamInfo();
|
|||
|
httpUtilParamInfo.setHeard(headerMap);
|
|||
|
httpUtilParamInfo.setParams(params);
|
|||
|
httpUtilParamInfo.setSendDate(new Date());
|
|||
|
httpUtilParamInfo.setUrl(getUrl.trim());
|
|||
|
HTTP_UTIL_PARAM_INFO_THREAD_LOCAL.set(httpUtilParamInfo);
|
|||
|
} catch (Exception ignore) {
|
|||
|
|
|||
|
}
|
|||
|
return baseRequest(httpConnection, httpGet);
|
|||
|
}
|
|||
|
|
|||
|
public ResponeVo apiDelete(String url, Map<String, String> headers) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> params = paramsHandle(null);
|
|||
|
String getUrl = urlHandle(url, params);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
HttpDelete httpDelete = new HttpDelete(getUrl.trim());
|
|||
|
for (Map.Entry<String, String> entry : headerMap.entrySet()) {
|
|||
|
httpDelete.setHeader(entry.getKey(), entry.getValue());
|
|||
|
}
|
|||
|
try {
|
|||
|
HttpUtilParamInfo httpUtilParamInfo = new HttpUtilParamInfo();
|
|||
|
httpUtilParamInfo.setHeard(headerMap);
|
|||
|
httpUtilParamInfo.setParams(params);
|
|||
|
httpUtilParamInfo.setSendDate(new Date());
|
|||
|
httpUtilParamInfo.setUrl(getUrl.trim());
|
|||
|
HTTP_UTIL_PARAM_INFO_THREAD_LOCAL.set(httpUtilParamInfo);
|
|||
|
} catch (Exception ignore) {
|
|||
|
|
|||
|
}
|
|||
|
return baseRequest(httpConnection, httpDelete);
|
|||
|
}
|
|||
|
|
|||
|
public ResponeVo apiGet(String url, Map<String, Object> params, Map<String, String> headers) throws IOException {
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
String getUrl = urlHandle(url, paramsMap);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
HttpGet httpGet = new HttpGet(getUrl.trim());
|
|||
|
for (Map.Entry<String, String> entry : headerMap.entrySet()) {
|
|||
|
httpGet.setHeader(entry.getKey(), entry.getValue());
|
|||
|
}
|
|||
|
try {
|
|||
|
HttpUtilParamInfo httpUtilParamInfo = new HttpUtilParamInfo();
|
|||
|
httpUtilParamInfo.setHeard(headerMap);
|
|||
|
httpUtilParamInfo.setParams(paramsMap);
|
|||
|
httpUtilParamInfo.setSendDate(new Date());
|
|||
|
httpUtilParamInfo.setUrl(getUrl.trim());
|
|||
|
HTTP_UTIL_PARAM_INFO_THREAD_LOCAL.set(httpUtilParamInfo);
|
|||
|
} catch (Exception ignore) {
|
|||
|
|
|||
|
}
|
|||
|
return baseRequest(httpConnection, httpGet);
|
|||
|
}
|
|||
|
|
|||
|
public ResponeVo apiDelete(String url, Map<String, Object> params, Map<String, String> headers) throws IOException {
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
String getUrl = urlHandle(url, paramsMap);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
HttpDelete httpDelete = new HttpDelete(getUrl.trim());
|
|||
|
for (Map.Entry<String, String> entry : headerMap.entrySet()) {
|
|||
|
httpDelete.setHeader(entry.getKey(), entry.getValue());
|
|||
|
}
|
|||
|
try {
|
|||
|
HttpUtilParamInfo httpUtilParamInfo = new HttpUtilParamInfo();
|
|||
|
httpUtilParamInfo.setHeard(headerMap);
|
|||
|
httpUtilParamInfo.setParams(paramsMap);
|
|||
|
httpUtilParamInfo.setSendDate(new Date());
|
|||
|
httpUtilParamInfo.setUrl(getUrl.trim());
|
|||
|
HTTP_UTIL_PARAM_INFO_THREAD_LOCAL.set(httpUtilParamInfo);
|
|||
|
} catch (Exception ignore) {
|
|||
|
|
|||
|
}
|
|||
|
return baseRequest(httpConnection, httpDelete);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 回调方法
|
|||
|
*
|
|||
|
* @param url 请求地址
|
|||
|
* @param params 请求参数
|
|||
|
* @param headers 请求头信息
|
|||
|
* @param consumer 回调方法
|
|||
|
* @throws IOException io异常
|
|||
|
*/
|
|||
|
public void apiGet(String url, Map<String, Object> params, Map<String, String> headers, Consumer<CloseableHttpResponse> consumer) throws IOException {
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
String getUrl = urlHandle(url, paramsMap);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
HttpGet httpGet = new HttpGet(getUrl.trim());
|
|||
|
for (Map.Entry<String, String> entry : headerMap.entrySet()) {
|
|||
|
httpGet.setHeader(entry.getKey(), entry.getValue());
|
|||
|
}
|
|||
|
try {
|
|||
|
HttpUtilParamInfo httpUtilParamInfo = new HttpUtilParamInfo();
|
|||
|
httpUtilParamInfo.setHeard(headerMap);
|
|||
|
httpUtilParamInfo.setParams(paramsMap);
|
|||
|
httpUtilParamInfo.setSendDate(new Date());
|
|||
|
httpUtilParamInfo.setUrl(getUrl.trim());
|
|||
|
HTTP_UTIL_PARAM_INFO_THREAD_LOCAL.set(httpUtilParamInfo);
|
|||
|
} catch (Exception ignore) {
|
|||
|
|
|||
|
}
|
|||
|
callBackRequest(httpConnection, httpGet, consumer);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 回调方法
|
|||
|
*
|
|||
|
* @param url 请求地址
|
|||
|
* @param params 请求参数
|
|||
|
* @param headers 请求头信息
|
|||
|
* @param consumer 回调方法
|
|||
|
* @throws IOException io异常
|
|||
|
*/
|
|||
|
public void apiDelete(String url, Map<String, Object> params, Map<String, String> headers, Consumer<CloseableHttpResponse> consumer) throws IOException {
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
String getUrl = urlHandle(url, paramsMap);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
HttpDelete httpDelete = new HttpDelete(getUrl.trim());
|
|||
|
for (Map.Entry<String, String> entry : headerMap.entrySet()) {
|
|||
|
httpDelete.setHeader(entry.getKey(), entry.getValue());
|
|||
|
}
|
|||
|
try {
|
|||
|
HttpUtilParamInfo httpUtilParamInfo = new HttpUtilParamInfo();
|
|||
|
httpUtilParamInfo.setHeard(headerMap);
|
|||
|
httpUtilParamInfo.setParams(paramsMap);
|
|||
|
httpUtilParamInfo.setSendDate(new Date());
|
|||
|
httpUtilParamInfo.setUrl(getUrl.trim());
|
|||
|
HTTP_UTIL_PARAM_INFO_THREAD_LOCAL.set(httpUtilParamInfo);
|
|||
|
} catch (Exception ignore) {
|
|||
|
|
|||
|
}
|
|||
|
callBackRequest(httpConnection, httpDelete, consumer);
|
|||
|
}
|
|||
|
|
|||
|
public ResponeVo apiPost(String url, Map<String, Object> params) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
Map<String, String> headerMap = headersHandle(null);
|
|||
|
HttpPost httpPost = handleHttpPost(url, headerMap, paramsMap);
|
|||
|
return baseRequest(httpConnection, httpPost);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
public ResponeVo apiPut(String url, Map<String, Object> params) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
Map<String, String> headerMap = headersHandle(null);
|
|||
|
HttpPut httpPut = handleHttpPut(url, headerMap, paramsMap);
|
|||
|
return baseRequest(httpConnection, httpPut);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
public ResponeVo apiPost(String url, Map<String, Object> params, Map<String, String> headers) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
HttpPost httpPost = handleHttpPost(url, headerMap, paramsMap);
|
|||
|
return baseRequest(httpConnection, httpPost);
|
|||
|
}
|
|||
|
|
|||
|
public ResponeVo apiPostObject(String url, Object params, Map<String, String> headers) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
HttpPost httpPost = handleHttpPostObject(url, headerMap, params);
|
|||
|
return baseRequest(httpConnection, httpPost);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
public ResponeVo apiPut(String url, Map<String, Object> params, Map<String, String> headers) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
HttpPut httpPut = handleHttpPut(url, headerMap, paramsMap);
|
|||
|
return baseRequest(httpConnection, httpPut);
|
|||
|
}
|
|||
|
|
|||
|
public ResponeVo apiUploadFile(String url, InputStream inputStream, String fileKey, String fileName,
|
|||
|
Map<String, Object> params, Map<String, String> headers) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
HttpPost httpPost = uploadFileByInputStream(url, inputStream, fileKey, fileName, paramsMap, headerMap);
|
|||
|
return baseRequest(httpConnection, httpPost);
|
|||
|
}
|
|||
|
|
|||
|
public Future<ResponeVo> apiUploadFileAsync(String url, InputStream inputStream, String fileKey, String fileName,
|
|||
|
Map<String, Object> params, Map<String, String> headers) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
HttpPost httpPost = uploadFileByInputStream(url, inputStream, fileKey, fileName, paramsMap, headerMap);
|
|||
|
return executorService.submit(new HttpAsyncThread(httpConnection, httpPost, DEFAULT_ENCODING));
|
|||
|
}
|
|||
|
|
|||
|
public ResponeVo apiUploadFile(String url, File file, String fileKey, String fileName,
|
|||
|
Map<String, Object> params, Map<String, String> headers) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
HttpPost httpPost = uploadFileByInputStream(url, file, fileKey, fileName, paramsMap, headerMap);
|
|||
|
return baseRequest(httpConnection, httpPost);
|
|||
|
}
|
|||
|
|
|||
|
public ResponeVo apiUploadFileById(String url, int id, String fileKey, String fileName,
|
|||
|
Map<String, Object> params, Map<String, String> headers) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
InputStream inputStream = ImageFileManager.getInputStreamById(id);
|
|||
|
HttpPost httpPost = uploadFileByInputStream(url, inputStream, fileKey, fileName, paramsMap, headerMap);
|
|||
|
return baseRequest(httpConnection, httpPost);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* @param url 请求地址
|
|||
|
* @param params 请求参数
|
|||
|
* @param headers 请求头信息
|
|||
|
* @param consumer 回调方法
|
|||
|
* @throws IOException io异常
|
|||
|
*/
|
|||
|
public void apiPost(String url, Map<String, Object> params, Map<String, String> headers, Consumer<CloseableHttpResponse> consumer) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
HttpPost httpPost = handleHttpPost(url, headerMap, paramsMap);
|
|||
|
callBackRequest(httpConnection, httpPost, consumer);
|
|||
|
}
|
|||
|
|
|||
|
public ResponeVo apiPost(String url, Map<String, Object> params, Map<String, String> headers, Function<CloseableHttpResponse, ResponeVo> consumer) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
HttpPost httpPost = handleHttpPost(url, headerMap, paramsMap);
|
|||
|
return callBackRequest(httpConnection, httpPost, consumer);
|
|||
|
}
|
|||
|
|
|||
|
public ResponeVo apiPost(String url, Map<String, Object> params, Map<String, String> headers, BiFunction<Map<String, Object>, CloseableHttpResponse, ResponeVo> consumer) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
HttpPost httpPost = handleHttpPost(url, headerMap, paramsMap);
|
|||
|
return callBackRequest(paramsMap, httpConnection, httpPost, consumer);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @param url 请求地址
|
|||
|
* @param params 请求参数
|
|||
|
* @param headers 请求头信息
|
|||
|
* @param consumer 回调方法
|
|||
|
* @throws IOException io异常
|
|||
|
*/
|
|||
|
public void apiPut(String url, Map<String, Object> params, Map<String, String> headers, Consumer<CloseableHttpResponse> consumer) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
HttpPut httpPut = handleHttpPut(url, headerMap, paramsMap);
|
|||
|
callBackRequest(httpConnection, httpPut, consumer);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
private void callBackRequest(CloseableHttpClient httpClient, HttpUriRequest request, Consumer<CloseableHttpResponse> consumer) throws IOException {
|
|||
|
CloseableHttpResponse response = null;
|
|||
|
try {
|
|||
|
response = httpClient.execute(request);
|
|||
|
consumer.accept(response);
|
|||
|
} catch (Exception e) {
|
|||
|
toolUtil.writeErrorLog(" http调用失败:" + e);
|
|||
|
throw e;
|
|||
|
} finally {
|
|||
|
HTTP_UTIL_PARAM_INFO_THREAD_LOCAL.remove();
|
|||
|
ExtendedIOUtils.closeQuietly(httpClient);
|
|||
|
ExtendedIOUtils.closeQuietly(response);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
private ResponeVo callBackRequest(CloseableHttpClient httpClient, HttpUriRequest request, Function<CloseableHttpResponse, ResponeVo> consumer) throws IOException {
|
|||
|
CloseableHttpResponse response = null;
|
|||
|
ResponeVo apply = null;
|
|||
|
try {
|
|||
|
response = httpClient.execute(request);
|
|||
|
apply = consumer.apply(response);
|
|||
|
} catch (Exception e) {
|
|||
|
toolUtil.writeErrorLog(" http调用失败:" + e);
|
|||
|
throw e;
|
|||
|
} finally {
|
|||
|
HttpUtilParamInfo httpUtilParamInfo = HTTP_UTIL_PARAM_INFO_THREAD_LOCAL.get();
|
|||
|
if (httpUtilParamInfo == null) {
|
|||
|
httpUtilParamInfo = new HttpUtilParamInfo();
|
|||
|
}
|
|||
|
httpUtilParamInfo.setResponse(apply);
|
|||
|
httpUtilParamInfo.setResponseDate(new Date());
|
|||
|
try {
|
|||
|
log.info(Util.logStr("url [{}] request info : [\n{}\n];", httpUtilParamInfo.getUrl(),
|
|||
|
JSONObject.toJSONString(httpUtilParamInfo,
|
|||
|
SerializerFeature.PrettyFormat,
|
|||
|
SerializerFeature.WriteDateUseDateFormat)));
|
|||
|
} catch (Exception ignore) {
|
|||
|
|
|||
|
}
|
|||
|
HTTP_UTIL_PARAM_INFO_THREAD_LOCAL.remove();
|
|||
|
ExtendedIOUtils.closeQuietly(httpClient);
|
|||
|
ExtendedIOUtils.closeQuietly(response);
|
|||
|
}
|
|||
|
return apply;
|
|||
|
}
|
|||
|
|
|||
|
private ResponeVo callBackRequest(Map<String, Object> requestParam, CloseableHttpClient httpClient, HttpUriRequest request, BiFunction<Map<String, Object>, CloseableHttpResponse, ResponeVo> consumer) throws IOException {
|
|||
|
CloseableHttpResponse response = null;
|
|||
|
ResponeVo apply = null;
|
|||
|
try {
|
|||
|
response = httpClient.execute(request);
|
|||
|
apply = consumer.apply(requestParam, response);
|
|||
|
} catch (Exception e) {
|
|||
|
toolUtil.writeErrorLog(" http调用失败:" + e);
|
|||
|
throw e;
|
|||
|
} finally {
|
|||
|
HttpUtilParamInfo httpUtilParamInfo = HTTP_UTIL_PARAM_INFO_THREAD_LOCAL.get();
|
|||
|
if (httpUtilParamInfo == null) {
|
|||
|
httpUtilParamInfo = new HttpUtilParamInfo();
|
|||
|
}
|
|||
|
httpUtilParamInfo.setResponse(apply);
|
|||
|
httpUtilParamInfo.setResponseDate(new Date());
|
|||
|
HTTP_UTIL_PARAM_INFO_THREAD_LOCAL.remove();
|
|||
|
try {
|
|||
|
log.info(Util.logStr("url [{}] request info : [\n{}\n];", httpUtilParamInfo.getUrl(),
|
|||
|
JSONObject.toJSONString(httpUtilParamInfo,
|
|||
|
SerializerFeature.PrettyFormat,
|
|||
|
SerializerFeature.WriteDateUseDateFormat)));
|
|||
|
} catch (Exception ignore) {
|
|||
|
|
|||
|
}
|
|||
|
ExtendedIOUtils.closeQuietly(httpClient);
|
|||
|
ExtendedIOUtils.closeQuietly(response);
|
|||
|
}
|
|||
|
return apply;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
public ResponeVo baseRequest(CloseableHttpClient httpClient, HttpUriRequest request) throws IOException {
|
|||
|
ResponeVo responeVo = new ResponeVo();
|
|||
|
CloseableHttpResponse response = null;
|
|||
|
HttpUtilParamInfo httpUtilParamInfo = HTTP_UTIL_PARAM_INFO_THREAD_LOCAL.get();
|
|||
|
if (httpUtilParamInfo == null) {
|
|||
|
httpUtilParamInfo = new HttpUtilParamInfo();
|
|||
|
}
|
|||
|
HTTP_UTIL_PARAM_INFO_THREAD_LOCAL.remove();
|
|||
|
try {
|
|||
|
response = httpClient.execute(request);
|
|||
|
HttpEntity entity = response.getEntity();
|
|||
|
Header[] allHeaders = response.getAllHeaders();
|
|||
|
Locale locale = response.getLocale();
|
|||
|
responeVo.setLocale(locale);
|
|||
|
responeVo.setAllHeaders(allHeaders);
|
|||
|
responeVo.setEntityString(EntityUtils.toString(entity, DEFAULT_ENCODING));
|
|||
|
responeVo.setCode(response.getStatusLine().getStatusCode());
|
|||
|
httpUtilParamInfo.setResponse(responeVo);
|
|||
|
httpUtilParamInfo.setResponseDate(new Date());
|
|||
|
try {
|
|||
|
log.info(Util.logStr("url [{}] request info : [\n{}\n];", httpUtilParamInfo.getUrl(),
|
|||
|
JSONObject.toJSONString(httpUtilParamInfo,
|
|||
|
SerializerFeature.PrettyFormat,
|
|||
|
SerializerFeature.WriteDateUseDateFormat)));
|
|||
|
} catch (Exception ignore) {
|
|||
|
|
|||
|
}
|
|||
|
} catch (Exception e) {
|
|||
|
toolUtil.writeErrorLog(" http调用失败:" + Util.getErrString(e));
|
|||
|
try {
|
|||
|
httpUtilParamInfo.setResponseDate(new Date());
|
|||
|
log.info(Util.logStr("url [{}] request info : [\n{}\n];", httpUtilParamInfo.getUrl(),
|
|||
|
JSONObject.toJSONString(httpUtilParamInfo,
|
|||
|
SerializerFeature.PrettyFormat,
|
|||
|
SerializerFeature.WriteDateUseDateFormat)));
|
|||
|
} catch (Exception ignore) {
|
|||
|
|
|||
|
}
|
|||
|
throw e;
|
|||
|
} finally {
|
|||
|
ExtendedIOUtils.closeQuietly(httpClient);
|
|||
|
ExtendedIOUtils.closeQuietly(response);
|
|||
|
}
|
|||
|
return responeVo;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* get请求
|
|||
|
*
|
|||
|
* @param url 请求地址
|
|||
|
* @return 请求结果
|
|||
|
* @throws IOException io异常
|
|||
|
*/
|
|||
|
public Future<ResponeVo> asyncApiGet(String url) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> params = paramsHandle(null);
|
|||
|
String getUrl = urlHandle(url, params);
|
|||
|
Map<String, String> headers = headersHandle(null);
|
|||
|
HttpGet httpGet = new HttpGet(getUrl.trim());
|
|||
|
for (Map.Entry<String, String> entry : headers.entrySet()) {
|
|||
|
httpGet.setHeader(entry.getKey(), entry.getValue());
|
|||
|
}
|
|||
|
return executorService.submit(new HttpAsyncThread(httpConnection, httpGet, DEFAULT_ENCODING));
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* delete请求
|
|||
|
*
|
|||
|
* @param url 请求地址
|
|||
|
* @return 异步请求结果
|
|||
|
* @throws IOException io异常
|
|||
|
*/
|
|||
|
public Future<ResponeVo> asyncApiDelete(String url) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> params = paramsHandle(null);
|
|||
|
String getUrl = urlHandle(url, params);
|
|||
|
Map<String, String> headers = headersHandle(null);
|
|||
|
HttpDelete httpDelete = new HttpDelete(getUrl.trim());
|
|||
|
for (Map.Entry<String, String> entry : headers.entrySet()) {
|
|||
|
httpDelete.setHeader(entry.getKey(), entry.getValue());
|
|||
|
}
|
|||
|
return executorService.submit(new HttpAsyncThread(httpConnection, httpDelete, DEFAULT_ENCODING));
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* get请求
|
|||
|
*
|
|||
|
* @param url 请求地址
|
|||
|
* @param headers 请求头
|
|||
|
* @return 异步请求结果
|
|||
|
* @throws IOException io异常
|
|||
|
*/
|
|||
|
public Future<ResponeVo> asyncApiGet(String url, Map<String, String> headers) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> params = paramsHandle(null);
|
|||
|
String getUrl = urlHandle(url, params);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
HttpGet httpGet = new HttpGet(getUrl.trim());
|
|||
|
for (Map.Entry<String, String> entry : headerMap.entrySet()) {
|
|||
|
httpGet.setHeader(entry.getKey(), entry.getValue());
|
|||
|
}
|
|||
|
return executorService.submit(new HttpAsyncThread(httpConnection, httpGet, DEFAULT_ENCODING));
|
|||
|
}
|
|||
|
|
|||
|
public Future<ResponeVo> asyncApiDelete(String url, Map<String, String> headers) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> params = paramsHandle(null);
|
|||
|
String getUrl = urlHandle(url, params);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
HttpDelete httpDelete = new HttpDelete(getUrl.trim());
|
|||
|
for (Map.Entry<String, String> entry : headerMap.entrySet()) {
|
|||
|
httpDelete.setHeader(entry.getKey(), entry.getValue());
|
|||
|
}
|
|||
|
return executorService.submit(new HttpAsyncThread(httpConnection, httpDelete, DEFAULT_ENCODING));
|
|||
|
}
|
|||
|
|
|||
|
public Future<ResponeVo> asyncApiGet(String url, Map<String, Object> params, Map<String, String> headers) throws IOException {
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
String getUrl = urlHandle(url, paramsMap);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
HttpGet httpGet = new HttpGet(getUrl.trim());
|
|||
|
for (Map.Entry<String, String> entry : headerMap.entrySet()) {
|
|||
|
httpGet.setHeader(entry.getKey(), entry.getValue());
|
|||
|
}
|
|||
|
return executorService.submit(new HttpAsyncThread(httpConnection, httpGet, DEFAULT_ENCODING));
|
|||
|
}
|
|||
|
|
|||
|
public Future<ResponeVo> asyncApiDelete(String url, Map<String, Object> params, Map<String, String> headers) throws IOException {
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
String getUrl = urlHandle(url, paramsMap);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
HttpDelete httpDelete = new HttpDelete(getUrl.trim());
|
|||
|
for (Map.Entry<String, String> entry : headerMap.entrySet()) {
|
|||
|
httpDelete.setHeader(entry.getKey(), entry.getValue());
|
|||
|
}
|
|||
|
return executorService.submit(new HttpAsyncThread(httpConnection, httpDelete, DEFAULT_ENCODING));
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 回调方法
|
|||
|
*
|
|||
|
* @param url 请求地址
|
|||
|
* @param params 请求参数
|
|||
|
* @param headers 请求头信息
|
|||
|
* @param consumer 回调函数
|
|||
|
* @throws IOException io异常
|
|||
|
*/
|
|||
|
public void asyncApiGet(String url, Map<String, Object> params, Map<String, String> headers, Consumer<CloseableHttpResponse> consumer) throws IOException {
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
String getUrl = urlHandle(url, paramsMap);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
HttpGet httpGet = new HttpGet(getUrl.trim());
|
|||
|
for (Map.Entry<String, String> entry : headerMap.entrySet()) {
|
|||
|
httpGet.setHeader(entry.getKey(), entry.getValue());
|
|||
|
}
|
|||
|
executorService.execute(new HttpAsyncThreadCallBack(httpConnection, httpGet, consumer));
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @param url 请求地址
|
|||
|
* @param params 请求参数
|
|||
|
* @param headers 请求头信息
|
|||
|
* @param consumer 回调方法
|
|||
|
* @throws IOException io异常
|
|||
|
*/
|
|||
|
public void asyncApiDelete(String url, Map<String, Object> params, Map<String, String> headers, Consumer<CloseableHttpResponse> consumer) throws IOException {
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
String getUrl = urlHandle(url, paramsMap);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
HttpDelete httpDelete = new HttpDelete(getUrl.trim());
|
|||
|
for (Map.Entry<String, String> entry : headerMap.entrySet()) {
|
|||
|
httpDelete.setHeader(entry.getKey(), entry.getValue());
|
|||
|
}
|
|||
|
executorService.execute(new HttpAsyncThreadCallBack(httpConnection, httpDelete, consumer));
|
|||
|
}
|
|||
|
|
|||
|
public Future<ResponeVo> asyncApiPost(String url, Map<String, Object> params) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
Map<String, String> headerMap = headersHandle(null);
|
|||
|
HttpPost httpPost = handleHttpPost(url, headerMap, paramsMap);
|
|||
|
return executorService.submit(new HttpAsyncThread(httpConnection, httpPost, DEFAULT_ENCODING));
|
|||
|
}
|
|||
|
|
|||
|
public Future<ResponeVo> asyncApiPut(String url, Map<String, Object> params) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
Map<String, String> headerMap = headersHandle(null);
|
|||
|
HttpPut httpPut = handleHttpPut(url, headerMap, paramsMap);
|
|||
|
return executorService.submit(new HttpAsyncThread(httpConnection, httpPut, DEFAULT_ENCODING));
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
public Future<ResponeVo> asyncApiPost(String url, Map<String, Object> params, Map<String, String> headers) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
HttpPost httpPost = handleHttpPost(url, headerMap, paramsMap);
|
|||
|
return executorService.submit(new HttpAsyncThread(httpConnection, httpPost, DEFAULT_ENCODING));
|
|||
|
}
|
|||
|
|
|||
|
public Future<ResponeVo> asyncApiPut(String url, Map<String, Object> params, Map<String, String> headers) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
HttpPut httpPut = handleHttpPut(url, headerMap, paramsMap);
|
|||
|
return executorService.submit(new HttpAsyncThread(httpConnection, httpPut, DEFAULT_ENCODING));
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* @param url 请求地址
|
|||
|
* @param params 请求参数
|
|||
|
* @param headers 请求头信息
|
|||
|
* @param consumer 回调方法
|
|||
|
* @throws IOException io异常
|
|||
|
*/
|
|||
|
public void asyncApiPost(String url, Map<String, Object> params, Map<String, String> headers, Consumer<CloseableHttpResponse> consumer) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
HttpPost httpPost = handleHttpPost(url, headerMap, paramsMap);
|
|||
|
executorService.execute(new HttpAsyncThreadCallBack(httpConnection, httpPost, consumer));
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* @param url 请求地址
|
|||
|
* @param params 请求参数
|
|||
|
* @param headers 请求头信息
|
|||
|
* @param consumer 回调方法
|
|||
|
* @throws IOException io异常
|
|||
|
*/
|
|||
|
public void asyncApiPut(String url, Map<String, Object> params, Map<String, String> headers, Consumer<CloseableHttpResponse> consumer) throws IOException {
|
|||
|
CloseableHttpClient httpConnection = HttpManager.getHttpConnection(url, this.credentialsProvider);
|
|||
|
Map<String, Object> paramsMap = paramsHandle(params);
|
|||
|
Map<String, String> headerMap = headersHandle(headers);
|
|||
|
HttpPut httpPut = handleHttpPut(url, headerMap, paramsMap);
|
|||
|
executorService.execute(new HttpAsyncThreadCallBack(httpConnection, httpPut, consumer));
|
|||
|
}
|
|||
|
|
|||
|
private HttpPost handleHttpPostObject(String url, Map<String, String> headerMap, Object paramsMap) throws UnsupportedEncodingException {
|
|||
|
HttpUtilParamInfo httpUtilParamInfo = new HttpUtilParamInfo();
|
|||
|
httpUtilParamInfo.setParams(paramsMap);
|
|||
|
httpUtilParamInfo.setUrl(url);
|
|||
|
httpUtilParamInfo.setHeard(headerMap);
|
|||
|
httpUtilParamInfo.setSendDate(new Date());
|
|||
|
String contentType = "";
|
|||
|
HttpPost httpPost = new HttpPost(url.trim());
|
|||
|
for (Map.Entry<String, String> entry : headerMap.entrySet()) {
|
|||
|
httpPost.setHeader(entry.getKey(), entry.getValue());
|
|||
|
if ("Content-Type".equalsIgnoreCase(entry.getKey())) {
|
|||
|
contentType = entry.getValue();
|
|||
|
}
|
|||
|
}
|
|||
|
httpUtilParamInfo.setContentType(contentType);
|
|||
|
if (!Strings.isNullOrEmpty(contentType) && contentType.equalsIgnoreCase(MediaType.APPLICATION_JSON)) {
|
|||
|
StringEntity stringEntity;
|
|||
|
stringEntity = new StringEntity(JSON.toJSONString(paramsMap), DEFAULT_ENCODING);
|
|||
|
httpPost.setEntity(stringEntity);
|
|||
|
HTTP_UTIL_PARAM_INFO_THREAD_LOCAL.set(httpUtilParamInfo);
|
|||
|
return httpPost;
|
|||
|
}
|
|||
|
Map<String, Object> params = (Map<String, Object>) paramsMap;
|
|||
|
if (Strings.isNullOrEmpty(contentType)) {
|
|||
|
List<NameValuePair> nvps = new ArrayList<>();
|
|||
|
for (Map.Entry<String, Object> entry : params.entrySet()) {
|
|||
|
nvps.add(new BasicNameValuePair(entry.getKey(), JSON.toJSONString(entry.getValue())));
|
|||
|
}
|
|||
|
httpPost.setHeader("Content-Type", HttpArgsType.DEFAULT_CONTENT_TYPE);
|
|||
|
httpPost.setEntity(new UrlEncodedFormEntity(nvps));
|
|||
|
} else if (contentType.toUpperCase().startsWith(HttpArgsType.X_WWW_FORM_URLENCODED.toUpperCase())) {
|
|||
|
List<NameValuePair> nvps = new ArrayList<>();
|
|||
|
for (Map.Entry<String, Object> entry : params.entrySet()) {
|
|||
|
nvps.add(new BasicNameValuePair(entry.getKey(), JSON.toJSONString(entry.getValue())));
|
|||
|
}
|
|||
|
httpPost.setEntity(new UrlEncodedFormEntity(nvps));
|
|||
|
// } else if (contentType.toUpperCase().startsWith(HttpArgsType.APPLICATION_JSON.toUpperCase())) {
|
|||
|
} else {
|
|||
|
StringEntity stringEntity;
|
|||
|
if (params.containsKey(JSON_PARAM_KEY)) {
|
|||
|
stringEntity = new StringEntity(JSON.toJSONString(params.get(JSON_PARAM_KEY)));
|
|||
|
} else {
|
|||
|
stringEntity = new StringEntity(JSON.toJSONString(params), DEFAULT_ENCODING);
|
|||
|
}
|
|||
|
httpPost.setEntity(stringEntity);
|
|||
|
}
|
|||
|
HTTP_UTIL_PARAM_INFO_THREAD_LOCAL.set(httpUtilParamInfo);
|
|||
|
return httpPost;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
private HttpPost handleHttpPost(String url, Map<String, String> headerMap, Map<String, Object> paramsMap) throws UnsupportedEncodingException {
|
|||
|
return handleHttpPostObject(url, headerMap, paramsMap);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
public HttpPost uploadFileByInputStream(String url, InputStream inputStream, String fileKey, String fileName,
|
|||
|
Map<String, Object> params, Map<String, String> headers) {
|
|||
|
log.info(Util.logStr("start request : url is [{}], params is [{}], header is [{}]; fileKey is [{}], fileName is [{}]" +
|
|||
|
"", url, JSON.toJSONString(params), JSON.toJSONString(headers), fileKey, fileName));
|
|||
|
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
|
|||
|
builder.setCharset(StandardCharsets.UTF_8);
|
|||
|
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
|
|||
|
builder.addBinaryBody(fileKey, inputStream, ContentType.MULTIPART_FORM_DATA, fileName);
|
|||
|
ContentType contentType = ContentType.create("text/plain", StandardCharsets.UTF_8);
|
|||
|
for (Map.Entry<String, Object> param : params.entrySet()) {
|
|||
|
StringBody stringBody = new StringBody(String.valueOf(param.getValue()), contentType);
|
|||
|
builder.addPart(param.getKey(), stringBody);
|
|||
|
}
|
|||
|
HttpPost httpPost = new HttpPost(url.trim());
|
|||
|
|
|||
|
for (Map.Entry<String, String> entry : headers.entrySet()) {
|
|||
|
if ("Content-Type".equalsIgnoreCase(entry.getKey())) {
|
|||
|
continue;
|
|||
|
}
|
|||
|
httpPost.setHeader(entry.getKey(), entry.getValue());
|
|||
|
}
|
|||
|
HttpEntity entity = builder.build();
|
|||
|
httpPost.setEntity(entity);
|
|||
|
return httpPost;
|
|||
|
}
|
|||
|
|
|||
|
public HttpPost uploadFileByInputStream(String url, File file, String fileKey, String fileName,
|
|||
|
Map<String, Object> params, Map<String, String> headers) {
|
|||
|
log.info(Util.logStr("start request : url is [{}], params is [{}], header is [{}]; fileKey is [{}], fileName is [{}]" +
|
|||
|
"", url, JSON.toJSONString(params), JSON.toJSONString(headers), fileKey, fileName));
|
|||
|
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
|
|||
|
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
|
|||
|
builder.addBinaryBody(fileKey, file, ContentType.MULTIPART_FORM_DATA, fileName);
|
|||
|
for (Map.Entry<String, Object> param : params.entrySet()) {
|
|||
|
StringBody stringBody = new StringBody(String.valueOf(param.getValue()), ContentType.MULTIPART_FORM_DATA);
|
|||
|
builder.addPart(param.getKey(), stringBody);
|
|||
|
}
|
|||
|
HttpPost httpPost = new HttpPost(url.trim());
|
|||
|
|
|||
|
for (Map.Entry<String, String> entry : headers.entrySet()) {
|
|||
|
if ("Content-Type".equalsIgnoreCase(entry.getKey())) {
|
|||
|
continue;
|
|||
|
}
|
|||
|
httpPost.setHeader(entry.getKey(), entry.getValue());
|
|||
|
}
|
|||
|
HttpEntity entity = builder.build();
|
|||
|
httpPost.setEntity(entity);
|
|||
|
return httpPost;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
private HttpPut handleHttpPut(String url, Map<String, String> headerMap, Map<String, Object> paramsMap) throws UnsupportedEncodingException {
|
|||
|
HttpUtilParamInfo httpUtilParamInfo = new HttpUtilParamInfo();
|
|||
|
httpUtilParamInfo.setParams(paramsMap);
|
|||
|
httpUtilParamInfo.setUrl(url);
|
|||
|
httpUtilParamInfo.setHeard(headerMap);
|
|||
|
httpUtilParamInfo.setSendDate(new Date());
|
|||
|
String contentType = "";
|
|||
|
HttpPut httpPut = new HttpPut(url.trim());
|
|||
|
for (Map.Entry<String, String> entry : headerMap.entrySet()) {
|
|||
|
httpPut.setHeader(entry.getKey(), entry.getValue());
|
|||
|
if ("Content-Type".equalsIgnoreCase(entry.getKey())) {
|
|||
|
contentType = entry.getValue();
|
|||
|
}
|
|||
|
}
|
|||
|
if (Strings.isNullOrEmpty(contentType)) {
|
|||
|
List<NameValuePair> nvps = new ArrayList<>();
|
|||
|
for (Map.Entry<String, Object> entry : paramsMap.entrySet()) {
|
|||
|
nvps.add(new BasicNameValuePair(entry.getKey(), JSON.toJSONString(entry.getValue())));
|
|||
|
}
|
|||
|
httpPut.setHeader("Content-Type", HttpArgsType.DEFAULT_CONTENT_TYPE);
|
|||
|
httpPut.setEntity(new UrlEncodedFormEntity(nvps));
|
|||
|
} else if (contentType.toUpperCase().startsWith(HttpArgsType.X_WWW_FORM_URLENCODED.toUpperCase())) {
|
|||
|
List<NameValuePair> nvps = new ArrayList<>();
|
|||
|
for (Map.Entry<String, Object> entry : paramsMap.entrySet()) {
|
|||
|
nvps.add(new BasicNameValuePair(entry.getKey(), JSON.toJSONString(entry.getValue())));
|
|||
|
}
|
|||
|
httpPut.setEntity(new UrlEncodedFormEntity(nvps));
|
|||
|
} else if (contentType.toUpperCase().startsWith(HttpArgsType.APPLICATION_JSON.toUpperCase())) {
|
|||
|
StringEntity stringEntity = new StringEntity(JSON.toJSONString(paramsMap), DEFAULT_ENCODING);
|
|||
|
httpPut.setEntity(stringEntity);
|
|||
|
}
|
|||
|
HTTP_UTIL_PARAM_INFO_THREAD_LOCAL.set(httpUtilParamInfo);
|
|||
|
return httpPut;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
private String inputStreamToString(InputStream is) {
|
|||
|
String line = "";
|
|||
|
StringBuilder total = new StringBuilder();
|
|||
|
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
|
|||
|
try {
|
|||
|
while ((line = rd.readLine()) != null) {
|
|||
|
total.append(line);
|
|||
|
}
|
|||
|
} catch (IOException e) {
|
|||
|
toolUtil.writeErrorLog(e.getLocalizedMessage() + "\n" + e);
|
|||
|
}
|
|||
|
return total.toString();
|
|||
|
}
|
|||
|
|
|||
|
public Map<String, String> headersHandle(Map<String, String> headers) {
|
|||
|
Map<String, String> map = new HashMap<>();
|
|||
|
if (headers != null && headers.size() > 0) {
|
|||
|
if (globalCache.header != null && globalCache.header.size() > 0) {
|
|||
|
map.putAll(globalCache.header);
|
|||
|
}
|
|||
|
map.putAll(headers);
|
|||
|
} else {
|
|||
|
map.putAll(globalCache.header);
|
|||
|
}
|
|||
|
return map;
|
|||
|
}
|
|||
|
|
|||
|
public Map<String, Object> paramsHandle(Map<String, Object> params) {
|
|||
|
Map<String, Object> map = new HashMap<>();
|
|||
|
if (params != null && params.size() > 0) {
|
|||
|
if (globalCache.paramMap != null && globalCache.paramMap.size() > 0) {
|
|||
|
map.putAll(globalCache.paramMap);
|
|||
|
}
|
|||
|
map.putAll(params);
|
|||
|
} else {
|
|||
|
map.putAll(globalCache.paramMap);
|
|||
|
}
|
|||
|
return map;
|
|||
|
}
|
|||
|
|
|||
|
public String urlHandle(String url, Map<String, Object> params) {
|
|||
|
if (params == null || params.size() <= 0) {
|
|||
|
return url;
|
|||
|
}
|
|||
|
String serializeParams = serializeParams(params);
|
|||
|
String getUrl;
|
|||
|
if (!url.contains("?")) {
|
|||
|
if (url.endsWith("/")) {
|
|||
|
getUrl = url.substring(0, url.length() - 1) + "?" + serializeParams;
|
|||
|
} else {
|
|||
|
getUrl = url + "?" + serializeParams;
|
|||
|
}
|
|||
|
} else {
|
|||
|
if (url.endsWith("?")) {
|
|||
|
getUrl = url + serializeParams;
|
|||
|
} else {
|
|||
|
getUrl = url + "&" + serializeParams;
|
|||
|
}
|
|||
|
}
|
|||
|
return getUrl;
|
|||
|
}
|
|||
|
|
|||
|
private String serializeParams(Map<String, Object> params) {
|
|||
|
if (params != null && params.size() > 0) {
|
|||
|
StringBuilder builder = new StringBuilder();
|
|||
|
for (Map.Entry<String, Object> entry : params.entrySet()) {
|
|||
|
builder.append("&");
|
|||
|
builder.append(entry.getKey());
|
|||
|
builder.append("=");
|
|||
|
builder.append(entry.getValue());
|
|||
|
}
|
|||
|
return removeSeparator(builder);
|
|||
|
}
|
|||
|
return "";
|
|||
|
}
|
|||
|
|
|||
|
private String removeSeparator(StringBuilder sqlBuilder) {
|
|||
|
String str = sqlBuilder.toString().trim();
|
|||
|
String removeSeparator = "&";
|
|||
|
if (str.endsWith(removeSeparator)) {
|
|||
|
// 如果以分&号结尾,则去除&号
|
|||
|
str = str.substring(0, str.length() - 1);
|
|||
|
}
|
|||
|
if (str.trim().startsWith(removeSeparator)) {
|
|||
|
// 如果以&开头,则去除&
|
|||
|
str = str.substring(1);
|
|||
|
}
|
|||
|
return str;
|
|||
|
}
|
|||
|
}
|