/okhttp-extension

okhttp-extension 是针对 okhttp 3 增强的网络框架。使用 Kotlin 特性编写,提供便捷的 DSL 方式创建网络请求,支持协程、响应式编程等等。

Primary LanguageKotlinApache License 2.0Apache-2.0

@Tony沈哲 on weibo License

okhttp-extension

okhttp-extension 是针对 okhttp 3 增强的网络框架。使用 Kotlin 特性编写,提供便捷的 DSL 方式创建网络请求,支持协程、响应式编程等等。

其中 core 模块只依赖 OkHttp,不会引入第三方库。

okhttp-extension 可以整合 Retrofit、Feign 框架,还提供了很多常用的拦截器,以及非常多的特性。 okhttp-extension 也给开发者提供一种新的选择。

Features:

  • 支持 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

okhttp-extension

最新版本

模块 最新版本
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>'

感谢

TODO List:

  • 完善文档
  • 完善和 Spring/Springboot 集成以及相关示例
  • 支持 kotlinx-serialization
  • 异常的日志记录
  • 支持 Micrometer

ChangeLog

ChangeLog