Skip to content

一些让okhttp和retrofit更好用的开源辅助类。包括上传、下载进度监听,断点续传,日期格式转换,Oauth2授权管理,HTTP请求失败时重试与请求、响应的日志等。

Notifications You must be signed in to change notification settings

xiazunyang/http

Repository files navigation

http开源工具包

适用于OkHttp以及Retrofit的一些开源工具,包括文件的上传与下载的进度回调、Oauth2token管理、请求与响应记录的日志输出等。

安装方法

当前最新版本号:

  1. 在你的android工程的根目录下的build.gradle文件中的适当的位置添加以下代码:
allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}
  1. 在你的android工程中对应的android模块的build.gradle文件中的适当位置添加以下代码:
implementation 'cn.numeron:http:latest_version'

进度回调

  • 通过OkHttp的拦截器实现的下载、上传进度监听功能
  • 支持OkHttpRetrofit

点击此处 查看文档

文件上传/下载

  • 通过OkHttp的拦截器实现的下载、上传进度监听功能
  • 同时支持断点续传
  • 无需IO操作过程
  • 支持OkHttpRetrofit

点击此处 查看文档

Oauth授权管理

  • 适用于Oauth2授权的APP端token管理工具
  • 可添加其它请求头
  • 可在服务端返回401响应码时尝试刷新token

点击此处 查看文档

网络连接失败重试拦截器

  • 可在网络连接超时、网络不稳定导致的错误时,重新发起连接请求。
  • 自定义重试次数。
  • 使用方法:在构建OkHttpClient实例时,添加RetryInterceptor实例即可。

Http请求响应日志输出工具

  • 其实就是HttpLoggingInterceptor,但是解决了在传输非文本数据时,日志输出乱码的问题。
  • 解决了HttpLoggingInterceptor导致的上传、下载文件时无法触发回调的问题。
  • 使用方法:在构建OkHttpClient实例时,添加TextLogInterceptor实例即可。

Retrofit 动态Url、Port方案

  • 使用PortUrl注解为Api指定访问端口或地址。
  • 在初始化OkHttpClient时,添加DynamicUrlInterceptor拦截器,并放在靠前的位置。
  • 示例:
    /** 此接口下所有的方法均通过指定的url地址访问,优先级低于方法上的注解 */
    @Url("http://192.168.1.111:8081/")
    interface LoginApi {
        
        /** 指定此方法在调用时,访问服务器的8080端口 */
        @Port(8080)
        @POST("api/user/login")
        suspend fun login(@Body payload: LoginPayload): LoginResponse
        
        /** 指定此方法在调用时,访问指定url地址 */
        @Url("http://192.168.1.111:8081/")
        @POST("api/user/login")
        suspend fun logout(@Body payload: LoginPayload): LogoutResponse
        
    }

Retrofit 动态定制请求超时方案

  • 使用RequestTimeout注解为Api指定请求超时时间,可标记在方法和接口上。
  • 在初始化OkHttpClient时,添加DynamicTimeoutInterceptor拦截器。
  • 示例:
    interface LoginApi {
        
        /** 此请求在访问API时,读取、写入、连接的超时时间均为8秒 */
        @RequestTimeout(value = 8, unit = TimeUnit.SECONDS)
        @POST("api/user/login")
        suspend fun login(@Body payload: LoginPayload): LoginResponse
        
    }

About

一些让okhttp和retrofit更好用的开源辅助类。包括上传、下载进度监听,断点续传,日期格式转换,Oauth2授权管理,HTTP请求失败时重试与请求、响应的日志等。

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages