common-module/utils/HttpsUtils.java
cuijiawang ea58e018b4 init
2025-05-27 17:58:49 +08:00

164 lines
5.3 KiB
Java

package com.sgcc.utils;
import cn.hutool.json.JSONObject;
import java.net.URI;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
/**
* Http请求工具类
*
* @author zhaoyuanyuan
* @version 1.0.0
* @date 2024/06/24 17:14
*/
@Slf4j
public class HttpsUtils {
/**
* 字符编码utf-8
*/
public static final String CHARSET_UTF8 = "UTF-8";
/**
* https请求url前缀
*/
public static final String HTTPS_PREFIX = "https";
/**
* 认证信息
*/
public static final String AUTHORIZATION = "Authorization";
/**
* post提交
*
* @param url url
* @param map 请求入参
* @param header 头信息
* @return {@code String}
*/
public static String doPost(String url, Map<String, String> map, Map<String, String> header) {
return doPost(url, map, CHARSET_UTF8, header);
}
/**
* post请求
*
* @param url url
* @param map 请求入参
* @param charset 字符集
* @param header 头
* @return {@code String}
*/
public static String doPost(String url, Map<String, String> map, String charset, Map<String, String> header) {
HttpClient httpClient = null;
HttpPost httpPost = null;
String result = null;
try {
httpClient = new DefaultHttpClient();
httpPost = new HttpPost(url);
//设置参数
List<NameValuePair> list = new ArrayList<NameValuePair>();
Iterator iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, String> elem = (Map.Entry<String, String>) iterator.next();
list.add(new BasicNameValuePair(elem.getKey(), elem.getValue()));
}
if (list.size() > 0) {
Map<String, Object> param = new HashMap<>();
param.putAll(map);
log.info("httpParam:{}", param);
StringEntity stringEntity = new StringEntity(new JSONObject(param).toString());
httpPost.setEntity(stringEntity);
}
if (header.size() > 0) {
//设置请求头
Iterator entryList = header.entrySet().iterator();
while (entryList.hasNext()) {
Map.Entry<String, String> entry = (Map.Entry<String, String>) entryList.next();
httpPost.setHeader(entry.getKey(), entry.getValue());
}
}
HttpResponse response = httpClient.execute(httpPost);
if (response != null) {
HttpEntity resEntity = response.getEntity();
if (resEntity != null) {
result = EntityUtils.toString(resEntity, charset);
}
}
} catch (Exception e) {
log.error("HttpsUtils doPost exception: {}", e.getMessage());
}
return result;
}
/**
* https Get 请求方式
*
* @param url 请求url
* @param header 请求头
* @return {@code String }
* @author zhaoyuanyuan
* @date 2024/06/24 17:16
*/
public static String doGet(String url, Map<String, String> header) {
return doGet(url, header, new HashMap<>());
}
/**
* https Get 请求方式
*
* @param url url
* @param header 请求头
* @param uriVariable 请求参数
* @return {@code String }
* @author zhaoyuanyuan
* @date 2024/06/24 17:16
*/
public static String doGet(String url, Map<String, String> header, Map<String, String> uriVariable) {
HttpClient httpClient = null;
HttpGet httpGet = null;
String result = null;
try {
httpClient = new DefaultHttpClient();
URIBuilder uriBuilder = new URIBuilder(url);
// 请求参数
if (uriVariable != null) {
uriVariable.forEach(uriBuilder::addParameter);
}
URI uri = uriBuilder.build();
httpGet = new HttpGet(uri);
log.info("HttpsUtils doGet: {}", httpGet.getRequestLine().getUri());
// 请求头
if (header != null) {
header.forEach(httpGet::setHeader);
}
HttpResponse response = httpClient.execute(httpGet);
if (response != null) {
HttpEntity resEntity = response.getEntity();
log.info("HttpsUtils doGet response status: {}", response.getStatusLine().getStatusCode());
if (resEntity != null) {
result = EntityUtils.toString(resEntity, CHARSET_UTF8);
}
}
} catch (Exception e) {
log.error("HttpsUtils doGet exception: {}", e.getMessage());
}
return result;
}
}