okhttp-extension 是针对 okhttp 3 增强的网络框架。使用 Kotlin 特性编写,提供便捷的 DSL 方式创建网络请求,支持协程、响应式编程等等。
其中 core 模块只依赖 OkHttp,不会引入第三方库。
okhttp-extension 可以整合 Retrofit、Feign 框架,还提供了很多常用的拦截器,以及非常多的特性。 okhttp-extension 也给开发者提供一种新的选择。
- 支持 DSL 创建 HTTP
GET/POST/PUT/HEAD/DELETE/PATCHrequests. - 支持文件上传/下载
- 支持 Kotlin 协程
- 支持响应式(RxJava、Spring Reactor)
- 支持函数式
- 支持熔断器(Resilience4j)
- 支持异步请求的取消
- 支持预连接
- 支持 Request、Response 的拦截器
- 提供多款常用的拦截器
- 支持自定义线程池
- 支持整合 Retrofit、Feign 框架
- 支持 WebSocket 的实现、自动重连等
- 支持 Stomp over WebSocket
- core 模块只依赖 OkHttp,不依赖其他第三方库
更详细的功能请查看 wiki
| 模块 | 最新版本 |
|---|---|
| core | |
| coroutines | |
| rxjava3 | |
| rxjava2 | |
| reactor | |
| result | |
| resilience4j |
将它添加到项目的 root build.gradle 中:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}其余,按需依赖各个模块,其中 core 是必须要依赖的
implementation 'com.github.fengzhizi715.okhttp-extension:core:<latest-version>'implementation 'com.github.fengzhizi715.okhttp-extension:coroutines:<latest-version>'implementation 'com.github.fengzhizi715.okhttp-extension:rxjava3:<latest-version>'implementation 'com.github.fengzhizi715.okhttp-extension:rxjava2:<latest-version>'implementation 'com.github.fengzhizi715.okhttp-extension:reactor:<latest-version>'implementation 'com.github.fengzhizi715.okhttp-extension:result:<latest-version>'implementation 'com.github.fengzhizi715.okhttp-extension:resilience4j:<latest-version>'- 参考了 http4k 的实现
- 参考了 kohttp 的实现
- 参考了 kotlin-stomp-client 的实现
- 完善文档
- 完善和 Spring/Springboot 集成以及相关示例
- 支持 kotlinx-serialization
- 异常的日志记录
- 支持 Micrometer
