Package http.demo
Class HttpDemoUtil
java.lang.Object
http.demo.HttpDemoUtil
http 工具示例类
- Since:
- 2020/7/9 5:42 下午
- Version:
- 1.0.0
- Author:
- Hsiong
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static <T> T将返回值解析为泛型private static <T> List<T>getRetPage(String result, Class<T> responseClass) 将返回值解析为分页泛型static <T,M> M 向指定URL发送 delete 方法的请求static <T,M> M 向指定URL发送GET方法的请求static <T,M> List<M> 发送分页请求static <M> Mstatic <M> M向指定 URL 发送POST方法的请求static <T,M> M 发送 post 文件请求
-
Constructor Details
-
HttpDemoUtil
public HttpDemoUtil()Default constructor added by Java.
-
-
Method Details
-
sendGet
public static <T,M> M sendGet(String url, T paramObj, Map<String, String> header, Class<M> responseClass) 向指定URL发送GET方法的请求- Type Parameters:
T- 返回类型M- 返回子类型- Parameters:
url- 发送请求的URLparamObj- 请求参数,以对象的形式header- 请求头, "key1":"value1"的形式responseClass- 返回子类型- Returns:
- String 所代表远程资源的响应结果
-
sendDelete
public static <T,M> M sendDelete(String url, T paramObj, Map<String, String> header, Class<M> responseClass) 向指定URL发送 delete 方法的请求- Type Parameters:
T- 返回类型M- 返回子类型- Parameters:
url- 发送请求的URLparamObj- 请求参数,以对象的形式header- 请求头, "key1":"value1"的形式responseClass- 返回子类型- Returns:
- String 所代表远程资源的响应结果
-
sendGetPage
public static <T,M> List<M> sendGetPage(String url, T paramObj, Map<String, String> header, Class<M> responseClass) 发送分页请求- Type Parameters:
T- 返回类型M- 返回子类型- Parameters:
url- 接口地址paramObj- 返回类型header- 加密头responseClass- 返回子类型- Returns:
- T 所代表远程资源的响应结果
-
sendPost
public static <M> M sendPost(String url, String param, Map<String, String> header, Class<M> responseClass) 向指定 URL 发送POST方法的请求- Type Parameters:
M- 返回子类型- Parameters:
url- 发送请求的 URLparam- 请求参数,请求参数应该是 name1=value1 name2=value2 的形式。header- 请求头responseClass- 返回子类型- Returns:
- 所代表远程资源的响应结果 Content type 'application/json;charset=UTF-8' not supported // 请考虑接口入参的情况
-
sendObjPost
-
sendPostFile
public static <T,M> M sendPostFile(String url, T paramObj, String dir, Map<String, String> header, Class<M> responseClass) 发送 post 文件请求- Type Parameters:
T- 返回类型M- 子类型- Parameters:
url- 远程接口地址paramObj- 返回类型dir- 文件路径header- 消息头responseClass- 子类型- Returns:
- T 所代表远程资源的响应结果
-
getRet
将返回值解析为泛型- Type Parameters:
T- 返回类型- Parameters:
result- 返回字符串responseClass- 返回子类型 // 实现 java 泛型声明 java 实例 BaseRes s = new BaseRes(responseClass.getDeclaredConstructor().newInstance());- Returns:
- T 所代表远程资源的响应结果
- See Also:
-
alibaba-fastjson 不支持泛型转换的原因: fastJson 将所有{} 识别成 JSONObject; 而不是泛型, 故使用 JSONObject.parseObject 的成员变量为jsonObjalibaba-fastjson 实现逻辑: JsonObject 是 java-map 的实现类, 通过 com.alibaba.fastjson.ci.junit.util.TypeUtils#castToJavaBean 实现转换fastjson mapToJavaBean实现逻辑: fastjson 用 ParameterizedType.class 通过递归构造了一个多层泛型的类型, 简直代码之精髓!
-
getRetPage
将返回值解析为分页泛型- Type Parameters:
T- 返回类型- Parameters:
result- 结果字符串responseClass- 返回嵌套类型- Returns:
- 所代表远程资源的响应结果
-