okhttp-extension 是针对 okhttp 3 增强的网络框架。使用 Kotlin 特性编写,提供便捷的 DSL 方式创建网络请求,支持协程、响应式编程等等。
其中 core 模块只依赖 OkHttp,不会引入第三方库。
okhttp-extension 可以整合 Retrofit、Feign 框架,还提供了很多常用的拦截器,以及非常多的特性。 okhttp-extension 也给开发者提供一种新的选择。
- 支持 DSL 创建 HTTP
GET
/POST
/PUT
/HEAD
/DELETE
/PATCH
requests. - 支持文件上传/下载
- 支持 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