OkHttp的基本封装
一、使用步骤
-
构建
client
-
配置参数
-
构建
request
-
执行请求
call.execute/enquene
-
GET请求
-
POST请求
-
//client val okClient = OkHttpClient.Builder() .callTimeout(10, TimeUnit.SECONDS)//完整请求超时时长,从发起到接收返回数据,默认值0,不限 .connectTimeout(10, TimeUnit.SECONDS)//与服务器建立连接的时长,默认10s .readTimeout(10, TimeUnit.SECONDS)//读取服务器返回数据的时长 .writeTimeout(10, TimeUnit.SECONDS)//向服务器写入数据的时长,默认10s .cache(Cache(mCacheFile, 1024))//http 的缓存大小,位置 .cookieJar(CookieJar.NO_COOKIES)//不使用cookie,若用,自定义cookieJar实现 .build()
二、优化点
-
抽象接口封装
-
配置
CookieJar
,网络日志工具,重试机制 -
管理请求
cancel/cancelAll
-
okhttp的https支持问题
-
放行绕过
HostnameVerifier的实现类,设置verify 函数return true
X509TrustManager
空实现-
校验证书
-
-
CniaoInterceptor 拦截器的顺序
RealCall.kt
client.interceptor(),BridgeInterceptor,CacheInterceptor,ConnectInterceptor,networkInterceptors,CallServerInterceptor
-
LiveData、Couroutines,lambda的callback
-
retrofit的初步封装