学习JDK中HTTP Client的API使用;包含使用HTTP Client进行CRUD的API调用案例和文件上传下载API调用案例;同步调用案例和异步调用案例。
|
|
1 hafta önce | |
|---|---|---|
| API_server | 1 hafta önce | |
| src | 1 hafta önce | |
| .gitignore | 1 hafta önce | |
| AGENTS.md | 1 hafta önce | |
| README.md | 1 hafta önce | |
| blog.md | 1 hafta önce | |
| doc.md | 1 hafta önce | |
| httpClient.md | 1 hafta önce | |
| pom.xml | 1 hafta önce |
基于 JDK 自带模块 java.net.http(Java 11+,本仓库使用 Java 17)的实战示例项目,
围绕一个本地运行的 User Management API,演示 JDK HTTP Client 的核心用法。
每个知识点均包含:示例代码、JUnit 测试、文字说明。
httpClient/
├── src/ # JDK HTTP Client 示例与测试(根模块,Java 17)
│ ├── main/java/space/anyi/httpClient/
│ │ ├── model/ # UserRequest / UserVO / FileVO / Result<T> 模型
│ │ ├── QuickStart.java # 快速入门:请求构造与响应处理
│ │ ├── GetExample.java # GET 请求
│ │ ├── PostExample.java # POST 请求(JSON)
│ │ ├── PutDeleteExample.java # PUT / DELETE 请求
│ │ ├── HeaderExample.java # 请求头
│ │ ├── BodyExample.java # 请求体 / multipart 文件上传
│ │ ├── FileDownloadExample.java # 文件下载
│ │ ├── SyncAsyncExample.java # 同步与异步
│ │ ├── ResponseHandlerExample.java # 响应处理器
│ │ ├── ClientConfigExample.java # HTTP Client 配置
│ │ ├── RequestConfigExample.java # HTTP Request 配置
│ │ └── CoreApiExample.java # 核心对象 API 一览
│ └── test/java/space/anyi/httpClient/ # 12 个测试类(JUnit 5)
├── API_server/ # User Management API(Spring Boot 3.5,独立模块)
├── httpClient.md # 主题大纲
├── doc.md # 详细使用文档
└── blog.md # 教程 blog(doc.md 的 blog 化渲染)
# 1. 启动 API 服务(独立 Spring Boot 应用,监听 8080 端口)
mvn -f API_server/pom.xml spring-boot:run
# 2. 运行全部测试(需先启动 API 服务)
mvn test
# 2'. 运行单个测试类
mvn -Dtest=GetExampleTest test
注意:测试会真实调用本地 API,必须先启动 API 服务,否则网络相关测试会失败。
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/users |
查询用户列表 |
| GET | /api/users/{id} |
按 id 查询单个用户 |
| POST | /api/users |
创建用户(JSON) |
| PUT | /api/users/{id} |
整体更新用户(JSON) |
| DELETE | /api/users/{id} |
删除用户 |
| POST | /api/files/upload |
文件上传(multipart/form-data) |
| GET | /api/files/download/{storedFileName} |
按存储文件名下载文件 |
用户字段(UserRequest):name、account、sex 均必填,account 唯一,
重复创建返回 409。所有接口返回统一包装结构 {code, message, data}。
文件上传结果存于 uploads/ 目录(已 gitignore)。
启动后可通过 Swagger UI(springdoc)浏览接口文档:
http://localhost:8080/swagger-ui.html
| 文件 | 内容 |
|---|---|
httpClient.md |
主题大纲(文档结构的事实来源) |
doc.md |
详细使用文档 |
blog.md |
blog 版教程 |
send() 与异步 sendAsync()、批量并发