ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Java 企业级工具类全家桶-68-HTTP请求工具类

Java 企业级工具类全家桶-68-HTTP请求工具类

📋 目录

  • 一、工具类功能
  • 二、所需环境
  • 三、方法与调用示例(按需调用)
  • 四、工具类源码(可直接复制)

一、工具类功能

基于 JDK 内置HttpClient发 GET/POST 请求,拿回来的直接是业务对象——单个对象、List/Map这类泛型结构,也可以就是响应原文,非 2xx 把状态码与完整错误体一并交回。

二、所需环境

JDK 17或以上 + Spring Boot 3.x或以上

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><scope>provided</scope></dependency>

三、方法与调用示例(按需调用)

🔢方法序号:1

🎯方法用途:发一个 GET 请求,把响应直接读成指定类型的对象,对接 REST 接口取单个对象不用再手写解析

🧩方法定义:public static <R> R get(String url, Class<R> responseType)

🗣️入参解释:public static <R> R get(请求地址, 目标类型)

📤返回值解释:R,与目标类型同一个类型

💡边界口径:

🧪方法示例:


🔢方法序号:2

🎯方法用途:发 GET 请求并把响应读成List/Map这类泛型结构,接口返回数组时直接拿到对象列表

🧩方法定义:public static <R> R get(String url, TypeReference<R> responseType)

🗣️入参解释:public static <R> R get(请求地址, 泛型类型)

📤返回值解释:R,由泛型类型引用决定,如List<User>

💡边界口径:

🧪方法示例:


🔢方法序号:3

🎯方法用途:GET 的全参版,要带查询参数、自定义请求头或单独设超时时用,不用为了这几个选项自己拼 URL

🧩方法定义:public static <R> R get(String url, Map<String, String> queryParams, Map<String, String> headers, Duration requestTimeout, Class<R> responseType)

🗣️入参解释:public static <R> R get(请求地址, 查询参数, 请求头, 本次超时, 目标类型)

📤返回值解释:R,与目标类型同一个类型

💡边界口径:

🧪方法示例:


🔢方法序号:4

🎯方法用途:GET 全参版的泛型结构入口,既要带参数与自定义头、又要读回List/Map时用

🧩方法定义:public static <R> R get(String url, Map<String, String> queryParams, Map<String, String> headers, Duration requestTimeout, TypeReference<R> responseType)

🗣️入参解释:public static <R> R get(请求地址, 查询参数, 请求头, 本次超时, 泛型类型)

📤返回值解释:R,由泛型类型引用决定

💡边界口径:

🧪方法示例:


🔢方法序号:5

🎯方法用途:发一个 JSON POST,把请求体对象直接序列化发出去,响应读回指定类型的对象,创建类接口一步完成

🧩方法定义:public static <R> R post(String url, Object body, Class<R> responseType)

🗣️入参解释:public static <R> R post(请求地址, 请求体, 目标类型)

📤返回值解释:R,与目标类型同一个类型

💡边界口径:

🧪方法示例:


🔢方法序号:6

🎯方法用途:POST 的泛型结构入口,接口返回一批对象时直接读成List<实体>

🧩方法定义:public static <R> R post(String url, Object body, TypeReference<R> responseType)

🗣️入参解释:public static <R> R post(请求地址, 请求体, 泛型类型)

📤返回值解释:R,由泛型类型引用决定

💡边界口径:

🧪方法示例:


🔢方法序号:7

🎯方法用途:POST 的全参版,要带查询参数、自定义头或单独设超时时用,覆盖Content-Type就能发表单

🧩方法定义:public static <R> R post(String url, Object body, Map<String, String> queryParams, Map<String, String> headers, Duration requestTimeout, Class<R> responseType)

🗣️入参解释:public static <R> R post(请求地址, 请求体, 查询参数, 请求头, 本次超时, 目标类型)

📤返回值解释:R,与目标类型同一个类型

💡边界口径:

🧪方法示例:


🔢方法序号:8

🎯方法用途:POST 全参版的泛型结构入口,带参数与自定义头的同时把响应读成List/Map

🧩方法定义:public static <R> R post(String url, Object body, Map<String, String> queryParams, Map<String, String> headers, Duration requestTimeout, TypeReference<R> responseType)

🗣️入参解释:public static <R> R post(请求地址, 请求体, 查询参数, 请求头, 本次超时, 泛型类型)

📤返回值解释:R,由泛型类型引用决定

💡边界口径:

🧪方法示例:


🔢方法序号:9

🎯方法用途:把键值对拼成 URL 查询串,自己管请求或用别的客户端时也能复用同一套编码口径

🧩方法定义:public static String toQueryString(Map<String, String> params)

🗣️入参解释:public static String toQueryString(键值对)

📤返回值解释:String,已按 UTF-8 百分号编码的查询串,不带前导?

💡边界口径:

🧪方法示例:


四、工具类源码(可直接复制)

📦领取方式: 关注点赞收藏,私信回复「java工具类」可领取100个工具类「Java企业级工具类全家桶(1-100)」的完整源码。

💡 工具类已调试通过,复制粘贴即可使用,省时省力

💡 可保存到自己网盘,永久有效


觉得对您有帮助,麻烦点点关注啦,您的关注是我创作的最大动力~ 🎯

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进