# okhttps
**Repository Path**: wuchunfu/okhttps
## Basic Information
- **Project Name**: okhttps
- **Description**: 如艺术一般优雅,像 1、2、3 一样简单,前后端通用,轻量却强大的 HTTP 客户端(同时支持 WebSocket 以及 Stomp 协议)
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: https://ok.zhxu.cn
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 275
- **Created**: 2024-09-08
- **Last Updated**: 2026-04-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 文档
网址:https://ok.zhxu.cn
## 为什么用
OkHttps 是对 OkHttp 轻量封装的 HTTP 框架,它独创的异步预处理器、特色的标签、灵活的上传下载进度监听与过程控制功能,在轻松解决很多问题的同时,设计上也力求纯粹与优雅。
- 超级优雅的 API 设计,且链式调用,让你顺滑到底!
- BaseURL、URL占位符、HTTP 同步/异步、WebSocket,让你想干啥就干啥!
- JSON、Xml、Msgpack 等自动封装与解析,且支持与任意格式的数据解析框架集成,想用啥就用啥!
- 同步拦截器、异步预处理器、回调执行器、全局监听、回调阻断 等等,让你扩展无限功能!
- 文件上传下载(过程控制、进度监听),上传下载如此简单!
- 单方法回调,充分利用 Lambda 表达式,让你代码超级简洁!
- 超级轻量,但性能卓越!
## 如何使用
### 如艺术一般优雅,像 1、2、3 一样简单
```java
// 同步 HTTP
List users = OkHttps.sync("/users")
.get() // GET请求
.getBody() // 响应报文体
.toList(User.class); // 自动反序列化 List
// 异步 HTTP
OkHttps.async("/users/1")
.setOnResponse(res -> {
// 自动反序列化 Bean
User user = res.getBody().toBean(User.class);
})
.get(); // GET请求
// WebSocket
OkHttps.webSocket("/chat")
.setOnMessage((WebSocket ws, Message msg) -> {
// 从服务器接收消息
Chat chat = msg.toBean(Chat.class);
// 向服务器发送消息
ws.send(chat);
})
.listen(); // 启动监听
```
### 请求三部曲
#### 第一步、确定请求方式
- 同步 HTTP - `sync` 方法
- 异步 HTTP - `async` 方法
- WebSocket - `webSocket` 方法
#### 第二步、构建请求任务
- `addXxxPara` - 添加请求参数
- `setOnXxxx` - 设置回调函数
- `tag` - 添加标签
- ...
#### 第三步、调用请求方法
HTTP 请求方法:
- `get()` - GET 请求
- `post()` - POST 请求
- `put()` - PUT 请求
- `delete()` - DELETE 请求
- ...
WebSocket 方法:
- `listen()` - 启动监听
#### 任意网络请求,都遵循请求三部曲!
## 相关项目
| 项目 | 最新版本 | 描述 |
|------|----------|------|
| [okhttps](https://gitee.com/troyzhxu/okhttps) | 6.0.0 | OkHttps 核心模块 |
| [okhttps-okhttp3](https://gitee.com/troyzhxu/okhttps) | 6.0.0 | OkHttp3 引擎 |
| [okhttps-jdk](https://gitee.com/troyzhxu/okhttps) | 6.0.0 | JDK HttpClient 引擎 |
| [okhttps-apache](https://gitee.com/troyzhxu/okhttps) | 6.0.0 | Apache HttpClient 5 引擎 |
| [okhttps-fastjson](https://gitee.com/troyzhxu/okhttps) | 6.0.0 | FastJson 序列化 |
| [okhttps-fastjson2](https://gitee.com/troyzhxu/okhttps) | 6.0.0 | FastJson2 序列化 |
| [okhttps-fastjson2-jsonb](https://gitee.com/troyzhxu/okhttps) | 6.0.0 | FastJson2 JSON-B 序列化 |
| [okhttps-gson](https://gitee.com/troyzhxu/okhttps) | 6.0.0 | Gson 序列化 |
| [okhttps-jackson3](https://gitee.com/troyzhxu/okhttps) | 6.0.0 | Jackson3 序列化 |
| [okhttps-jackson3-xml](https://gitee.com/troyzhxu/okhttps) | 6.0.0 | Jackson XML 序列化 |
| [okhttps-jackson3-yaml](https://gitee.com/troyzhxu/okhttps) | 6.0.0 | Jackson YAML 序列化 |
| [okhttps-msgpack](https://gitee.com/troyzhxu/okhttps) | 6.0.0 | Msgpack 序列化 |
| [okhttps-snack3](https://gitee.com/troyzhxu/okhttps) | 6.0.0 | Snack3 序列化 |
| [okhttps-stomp](https://gitee.com/troyzhxu/okhttps) | 6.0.0 | Stomp 协议客户端 |
## 超详细教程,请查看:https://ok.zhxu.cn
## 联系方式
- QQ 群:927109593
- 由于近期交流群的二维码被爬,扫码入群方式已被关闭
- 库的使用上若有疑问,可先加微信【18556739726】(请备注 OkHttps)再入群交流
## 参与贡献
1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request