io.gitee.loulan_yxq.owner.http.HttpTool Maven / Gradle / Ivy
The newest version!
package io.gitee.loulan_yxq.owner.http;
import io.gitee.loulan_yxq.owner.core.collection.ArrayTool;
import io.gitee.loulan_yxq.owner.core.tool.CharsetTool;
import io.gitee.loulan_yxq.owner.http.enums.CharsetEnum;
import java.io.InputStream;
import java.nio.charset.Charset;
import java.util.Map;
import java.util.Optional;
/*********************************************************
** http请求工具类
**
** Date: Created in 2021/11/1 14:45
** @author loulan
** @version 0.0.0
*********************************************************/
public class HttpTool {
/**
* get请求获取数据(默认编码模式UTF-8)
*
* @param url 请求的路径地址
* @return 字符串响应结果
* @author :loulan
*/
public static String get(String url) {
return get(url, CharsetTool.defaultCharset());
}
/**
* get请求获取数据(默认编码模式UTF-8)
*
* @param url 请求的路径地址
* @param headers 请求头
* @param paramMap 参数的map集合
* @return 字符串响应结果
* @author :loulan
*/
public static String get(String url, Map headers, Map paramMap) {
return get(url, CharsetTool.defaultCharset(), headers, paramMap);
}
/**
* get请求获取数据(默认编码模式UTF-8)
*
* @param url 请求的路径地址
* @param paramMap 参数的map集合
* @return 字符串响应结果
* @author :loulan
*/
public static String get(String url, Map paramMap) {
return get(url, CharsetTool.defaultCharset(), paramMap);
}
/**
* get请求获取数据
*
* @param url 请求的路径地址
* @param charset 编码方式
* @return 字符串响应结果
* @author :loulan
*/
public static String get(String url, Charset charset) {
return get(url, charset, null);
}
/**
* get请求获取数据
*
* @param url 请求的路径地址
* @param charset 编码方式
* @param paramMap 参数的map集合
* @return 字符串响应结果
* @author :loulan
*/
public static String get(String url, Charset charset, Map paramMap) {
return get(url, charset, null, paramMap);
}
/**
* get请求获取数据
*
* @param url 请求的路径地址
* @param charset 编码方式
* @return 字符串响应结果
* @author :loulan
*/
public static String get(String url, String charset) {
return get(url, charset, null);
}
/**
* get请求获取数据
*
* @param url 请求的路径地址
* @param charset 编码方式
* @param paramMap 参数的map集合
* @return 字符串响应结果
* @author :loulan
*/
public static String get(String url, String charset, Map paramMap) {
return get(url, CharsetTool.toCharset(charset), paramMap);
}
/**
* get请求获取数据
*
* @param url 请求的路径地址
* @param charset 编码方式
* @param headers 请求头
* @param paramMap 参数的map集合
* @return 字符串响应结果
* @author :loulan
*/
public static String get(String url, Charset charset, Map headers, Map paramMap) {
return request(url, HttpMethod.GET, charset, headers, paramMap, null);
}
/**
* get请求获取数据(默认编码模式UTF-8)
*
* @param url 请求的路径地址
* @return 字符串响应结果
* @author :loulan
*/
public static InputStream getStream(String url) {
return getStream(url, CharsetTool.defaultCharset());
}
/**
* get请求获取数据(默认编码模式UTF-8)
*
* @param url 请求的路径地址
* @param headers 请求头
* @param paramMap 参数的map集合
* @return 字符串响应结果
* @author :loulan
*/
public static InputStream getStream(String url, Map headers, Map paramMap) {
return getStream(url, CharsetTool.defaultCharset(), headers, paramMap);
}
/**
* get请求获取数据(默认编码模式UTF-8)
*
* @param url 请求的路径地址
* @param paramMap 参数的map集合
* @return 字符串响应结果
* @author :loulan
*/
public static InputStream getStream(String url, Map paramMap) {
return getStream(url, CharsetTool.defaultCharset(), paramMap);
}
/**
* get请求获取数据
*
* @param url 请求的路径地址
* @param charset 编码方式
* @return 字符串响应结果
* @author :loulan
*/
public static InputStream getStream(String url, Charset charset) {
return getStream(url, charset, null);
}
/**
* get请求获取数据
*
* @param url 请求的路径地址
* @param charset 编码方式
* @param paramMap 参数的map集合
* @return 字符串响应结果
* @author :loulan
*/
public static InputStream getStream(String url, Charset charset, Map paramMap) {
return getStream(url, charset, null, paramMap);
}
/**
* get请求获取数据
*
* @param url 请求的路径地址
* @param charset 编码方式
* @return 字符串响应结果
* @author :loulan
*/
public static InputStream getStream(String url, String charset) {
return getStream(url, charset, null);
}
/**
* get请求获取数据
*
* @param url 请求的路径地址
* @param charset 编码方式
* @param paramMap 参数的map集合
* @return 字符串响应结果
* @author :loulan
*/
public static InputStream getStream(String url, String charset, Map paramMap) {
return getStream(url, CharsetTool.toCharset(charset), paramMap);
}
/**
* get请求获取数据
*
* @param url 请求的路径地址
* @param charset 编码方式
* @param headers 请求头
* @param paramMap 参数的map集合
* @return 字符串响应结果
* @author :loulan
*/
public static InputStream getStream(String url, Charset charset, Map headers, Map paramMap) {
return requestStream(url, HttpMethod.GET, charset, headers, paramMap, null);
}
/**
* post请求获取数据(默认编码模式UTF-8)
*
* @param url 请求的路径地址
* @return 字符串响应结果
* @author :loulan
*/
public static String post(String url) {
return post(url, (Charset) null, null);
}
/**
* post请求获取数据(默认编码模式UTF-8)
*
* @param url 请求的路径地址
* @param bodyJson 请求体
* @return 字符串响应结果
* @author :loulan
*/
public static String post(String url, String bodyJson) {
return post(url, (Charset) null, null, bodyJson);
}
/**
* post请求获取数据
*
* @param url 请求的路径地址
* @param charset 编码方式
* @return 字符串响应结果
* @author :loulan
*/
public static String post(String url, Charset charset, String bodyJson) {
return post(url, charset, null, bodyJson);
}
/**
* post请求获取数据
*
* @param url 请求的路径地址
* @param charset 编码方式
* @return 字符串响应结果
* @author :loulan
*/
public static String post(String url, String charset, String bodyJson) {
return post(url, CharsetTool.toCharset(charset), bodyJson);
}
/**
* post请求获取数据
*
* @param url 请求的路径地址
* @param charset 编码方式
* @param paramMap 参数的map集合
* @param bodyJson 请求体
* @return 字符串响应结果
* @author :loulan
*/
public static String post(String url, String charset, Map paramMap, String bodyJson) {
return post(url, CharsetTool.toCharset(charset), paramMap, bodyJson);
}
/**
* post请求获取数据
*
* @param url 请求的路径地址
* @param charset 编码方式
* @param paramMap 参数的map集合
* @param bodyJson 请求体
* @return 字符串响应结果
* @author :loulan
*/
public static String post(String url, Charset charset, Map paramMap, String bodyJson) {
return request(url, HttpMethod.POST, charset, null, paramMap, bodyJson);
}
/**
* post请求获取数据(默认编码模式UTF-8)
*
* @param url 请求的路径地址
* @return 字符串响应结果
* @author :loulan
*/
public static InputStream postStream(String url) {
return postStream(url, (Charset) null, null);
}
/**
* post请求获取数据(默认编码模式UTF-8)
*
* @param url 请求的路径地址
* @param bodyJson 请求体
* @return 字符串响应结果
* @author :loulan
*/
public static InputStream postStream(String url, String bodyJson) {
return postStream(url, (Charset) null, null, bodyJson);
}
/**
* post请求获取数据
*
* @param url 请求的路径地址
* @param charset 编码方式
* @return 字符串响应结果
* @author :loulan
*/
public static InputStream postStream(String url, Charset charset, String bodyJson) {
return postStream(url, charset, null, bodyJson);
}
/**
* post请求获取数据
*
* @param url 请求的路径地址
* @param charset 编码方式
* @return 字符串响应结果
* @author :loulan
*/
public static InputStream postStream(String url, String charset, String bodyJson) {
return postStream(url, CharsetTool.toCharset(charset), bodyJson);
}
/**
* post请求获取数据
*
* @param url 请求的路径地址
* @param charset 编码方式
* @param paramMap 参数的map集合
* @param bodyJson 请求体
* @return 字符串响应结果
* @author :loulan
*/
public static InputStream postStream(String url, String charset, Map paramMap, String bodyJson) {
return postStream(url, CharsetTool.toCharset(charset), paramMap, bodyJson);
}
/**
* post请求获取数据
*
* @param url 请求的路径地址
* @param charset 编码方式
* @param paramMap 参数的map集合
* @param bodyJson 请求体
* @return 字符串响应结果
* @author :loulan
*/
public static InputStream postStream(String url, Charset charset, Map paramMap, String bodyJson) {
return requestStream(url, HttpMethod.POST, charset, null, paramMap, bodyJson);
}
/**
* 请求获取数据
*
* @param url 请求的路径地址
* @param method 请求方法
* @param charset 编码方式
* @param headers 请求头,没有可以为null
* @param paramMap 参数的集合,没有可以为null
* @param bodyJson 请求体,没有可以为null
* @return 字符串响应结果
* @author :loulan
*/
public static String request(String url, HttpMethod method, Charset charset, Map headers, Map paramMap, String bodyJson) {
return HttpRequest.Builder.request(url)
.method(method)
.headers(headers)
.param(paramMap)
.body(bodyJson)
.build()
.execute()
.charset(charset)
.body();
}
/**
* 请求获取数据
*
* @param url 请求的路径地址
* @param method 请求方法
* @param charset 编码方式
* @param headers 请求头,没有可以为null
* @param paramMap 参数的集合,没有可以为null
* @param bodyJson 请求体,没有可以为null
* @return 字符串响应结果
* @author :loulan
*/
public static InputStream requestStream(String url, HttpMethod method, Charset charset, Map headers, Map paramMap, String bodyJson) {
return HttpRequest.Builder.request(url)
.method(method)
.headers(headers)
.param(paramMap)
.body(bodyJson)
.build()
.execute()
.charset(charset)
.bodyStrem();
}
}