
高手修炼秘笈
文章平均质量分 95
ChayChan
程序员须深知“学如逆水行舟,不进则退”的道理,如果不求进取,技术则会停留在原地,甚至倒退。努力追求达到1万小时的磨练,成为这方面的专家。
展开
-
OkHttpClient源码分析(一)—— 同步、异步请求分析和Dispatcher的任务调度
OkHttpClient同步请求的执行流程和源码分析同步请求示例OkHttpClient okHttpClient = new OkHttpClient.Builder().readTimeout(5, TimeUnit.SECONDS).build(); Request request = new Request.Builder().url("https://ww...原创 2018-07-25 12:08:16 · 1181 阅读 · 0 评论 -
OkHttpClient源码分析(二) —— RetryAndFollowUpInterceptor和BridgeInterceptor
OkHttp拦截器 拦截器是OkHttp中提供的一种强大机制,它可以实现网络监听、请求以及响应重写、请求失败重试等功能。如上图所示,这就OkHttp内部提供给我们的拦截器,就是当我们发起一个http请求的时候,OkHttp就会通过这个拦截器链来执行http请求。其中包括:RetryAndFollowUpInterceptor 重试和重定向拦截器BridgeInterceptor :桥...原创 2019-01-04 11:51:15 · 943 阅读 · 2 评论 -
OkHttpClient源码分析(三)—— 缓存机制介绍
在讲解CacheInterceptor之前,我们先了解一下OkHttp的缓存机制,主要是Cache这个类,演示下如何使用OkHttp的缓存:private void cacheOkHttpRequest(){ OkHttpClient okHttpClient = new OkHttpClient .Builder() ...原创 2019-01-04 11:52:35 · 897 阅读 · 1 评论 -
OkHttpClient源码分析(四)—— CacheInterceptor
CacheInterceptor介绍完缓存之后,现在开始介绍缓存拦截器CacheInterceptor了,同样也是查看其intercept()方法,这里边上片段代码边解析,化整为零:@Override public Response intercept(Chain chain) throws IOException { Response cacheCandidate = cache !...原创 2019-01-04 11:53:33 · 802 阅读 · 2 评论 -
OkHttpClient源码分析(五)—— ConnectInterceptor和CallServerInterceptor
上一篇我们介绍了缓存拦截器CacheInterceptor,本篇将介绍剩下的两个拦截器: ConnectInterceptor和CallServerInterceptorConnectInterceptor该拦截器主要是负责建立可用的链接,主要作用是打开了与服务器的链接,正式开启了网络请求。查看其intercept()方法: @Override public Response inter...原创 2019-01-04 11:54:43 · 580 阅读 · 0 评论