RetrofitHelper

Retrofit帮助类

主要功能介绍: 1.支持管理多个 BaseUrl,且支持运行时动态改变 2.支持接口自定义超时时长,满足每个接口动态定义超时时长 3.支持添加公共请求头

RetrofitHelper中的核心方法

createClientBuilder 创建 OkHttpClient.Builder初始化一些配置参数,用于支持多个 BaseUrl

with 传入 OkHttpClient.Builder 配置一些参数,用于支持多个 BaseUrl

setBaseUrlsetBaseUrl 主要用于设置默认的 BaseUrl。

putDomainputDomain 主要用于支持多个 BaseUrl,且支持 BaseUrl 动态改变。

setDynamicDomain 设置是否支持 配置多个BaseUrl,且支持动态改变,一般会通过其他途径自动开启,此方法一般不会主动用到,只有在特殊场景下可能会有此需求,所以提供此方法主要用于提供更多种可能。

setHttpUrlParser 设置 HttpUrl解析器 , 当前默认采用的 DomainParser 实现类,你也可以自定义实现 HttpUrlParser

setAddHeader 设置是否添加头,一般会通过addHeader相关方法自动开启,此方法一般不会主动用到,只有特殊场景下会有此需求,主要用于提供统一控制。

addHeader 设置头,主要用于添加公共头消息。

addHeaders 设置头,主要用于设置公共头消息。

addRequestListener 添加请求监听。

addResponseListener 添加响应监听。

这里只是列出一些对外使用的核心方法,和相关的简单说明。如果想了解更多,可以查看对应的方法和详情。

Author

Jenly

Properties

Link copied to clipboard
是否添加头
Link copied to clipboard
是否是否支持 配置多个BaseUrl,且支持动态改变
Link copied to clipboard
是否支持 配置动态超时时长

Functions

Link copied to clipboard
open fun addHeader(name: String, value: String)
添加头,主要用于添加公共头消息。
Link copied to clipboard
open fun addHeaders(headers: Map<String, String>)
添加头,主要用于添加公共头消息。
Link copied to clipboard
添加请求监听
Link copied to clipboard
添加响应监听
Link copied to clipboard
open fun clearDomain()
s 清空支持多个 BaseUrl
Link copied to clipboard
open fun clearHeaders()
清空头
Link copied to clipboard
open fun clearListener()
清空监听
Link copied to clipboard
清空请求监听
Link copied to clipboard
清空响应监听
Link copied to clipboard
open fun createClientBuilder(): OkHttpClient.Builder
创建 OkHttpClient.Builder初始化一些配置参数,用于支持多个 BaseUrl 相关方法 with 同样具备此功能,两种选其一即可
Link copied to clipboard
open fun getBaseUrl(): HttpUrl
获取 BaseUrl
Link copied to clipboard
open fun getDomainUrl(@NonNull domainName: String): HttpUrl
通过 domainName 获取 HttpUrl
Link copied to clipboard
获取头,只能获取通过RetrofitHelper添加的头
Link copied to clipboard
获取单例
Link copied to clipboard
open fun obtainParserDomainUrl(@NonNull domainName: String, @NonNull originUrl: HttpUrl): HttpUrl
取切换之后的 BaseUrl,如果没有则返回 mBaseUrl,如果 mBaseUrl也为空,则不切换,直接返回空
Link copied to clipboard
open fun parseHttpUrl(@NonNull domainUrl: HttpUrl, @NonNull httpUrl: HttpUrl): HttpUrl
解析 httpUrl, 将 httpUrl 的 baseUrl 换成 domainUrl
Link copied to clipboard
open fun putDomain(@NonNull domainName: String, @NonNull domainUrl: String)
open fun putDomain(@NonNull domainName: String, @NonNull domainUrl: HttpUrl)
添加动态域名,当执行此操作时,则会自动启用isDynamicDomain,并支持多个 BaseUrl 在接口方法上添加 DomainName 标记对应的 domainName即可支持动态改变,
Link copied to clipboard
open fun removeBaseUrl()
移除 BaseUrl
Link copied to clipboard
open fun removeDomain(@NonNull domainName: String)
移除操作
Link copied to clipboard
移除请求监听
Link copied to clipboard
移除响应监听
Link copied to clipboard
open fun setBaseUrl(@NonNull baseUrl: String)
open fun setBaseUrl(@NonNull baseUrl: HttpUrl)
设置 BaseUrl,前提条件:当 isDynamicDomaintrue 时才支持动态改变。 通过此方法,可以动态改变 url中的 baseUrl,优先级低于DomainName 只有在接口没有标记DomainName或者标记了,但没找到对应的 domainUrl 时,才能动态改变。
Link copied to clipboard
open fun setHeaders(@NonNull headers: Map<String, String>)
设置头,主要用于设置公共头消息。
Link copied to clipboard
open fun setHttpUrlParser(@NonNull httpUrlParser: HttpUrlParser)
设置 HttpUrl解析器 , 当前默认采用的 DomainParser 实现类,你也可以自定义实现 HttpUrlParser
Link copied to clipboard
open fun setPathSegmentOffsets(pathSegmentOffsets: Int)
设置URL路径片段偏移量 示例:当 baseUrl为:http://host/a/b/c/ domainUrl为:http://domain/时,按照路径片段偏移量转换后的URL结果如下: pathSegmentOffsets: 0 http://host/a/b/c/ -> http://domain/a/b/c/ pathSegmentOffsets: 1 http://host/a/b/c/ -> http://domain/b/c/ pathSegmentOffsets: 2 http://host/a/b/c/ -> http://domain/c/ pathSegmentOffsets: 3 http://host/a/b/c/ -> http://domain/
Link copied to clipboard
open fun setProgressUpdateIntervalTime(progressUpdateIntervalTime: Long)
设置进度更新间隔时间(单位:毫秒);默认为:300毫秒,配置建议最小不要小于100毫秒
Link copied to clipboard
open fun with(@NonNull builder: OkHttpClient.Builder): OkHttpClient.Builder
传入 OkHttpClient.Builder 配置一些参数,用于支持多个 BaseUrl 相关方法 createClientBuilder 同样具备此功能,两种选其一即可
Link copied to clipboard
open fun wrapProgressRequest(request: Request): Request
包装进度请求,支持监听上传进度
Link copied to clipboard
open fun wrapProgressResponse(response: Response): Response
包装进度响应,支持监听下载进度