
okhttp
文章平均质量分 95
网络通信的功能已经成为移动手机开发中每个APP必须具备的一个最基本的功能,本课程主要分为三大部分,第一部分主要讲网络通信基础,第二部分为实战开发,第三部分为源码解析,从理论到实战,由入门到精通,循序渐进,使你快速掌握okhttp的使用和精髓
门心叼龙
早年从事asp,java开发,后随着移动互联网热潮开始北漂,转战Android开发,10多年软件行业从业经验,热爱技术,崇尚开源,在github开源了多个项目,累计收获近5k stars,曾在北京九五智驾等公司任职,擅长企业应用架构和设计,领导过多个企业级应用的架构设计和开发工作
展开
-
okhttp的应用详解与源码解析--数据缓存机制
文章目录配置缓存拦截器测试缓存策略缓存管理在开发中,由于不同业务场景解,我们需要将接口返回的数据缓存到本地,以实现复用。例如,接口数据每间隔一定时间才会更新,在时间间隔内就没必要重复的向服务器请求数据,直接使用缓存即可;当 app 无法访问网络时,也可以使用缓存的接口数据,避免缺省页等等。所以使用缓存也是好处多多:节省流量、提高响应速度、增强用户体验okhttp 的缓存功能使用起来也比较简单,我们一步步来看:配置缓存配置缓存首先要指定缓存目录和缓存大小,这两个可以根据项目的需求来确定,然后使用 Ok原创 2020-07-01 18:59:31 · 587 阅读 · 0 评论 -
okhttp的应用详解与源码解析--连接池复用机制
文章目录连接的创建连接池连接的创建是在StreamAllocation对象统筹下完成的,我们前面也说过它早在RetryAndFollowUpInterceptor就被创建了,StreamAllocation对象主要用来管理两个关键角色:RealConnection:真正建立连接的对象,利用Socket建立连接。ConnectionPool:连接池,用来管理和复用连接。在里初始化了一个StreamAllocation对象,我们说在这个StreamAllocation对象里初始化了一个Socket对原创 2020-06-30 17:52:11 · 1114 阅读 · 0 评论 -
okhttp的应用详解与源码解析--请求调度机制
文章目录请求调度线程池的配置调度策略自定义配置请求调度OkHttp 支持异步发起请求,可以不需要使用者自己创建线程池管理异步请求,它有内置实现。比如这边发起一个异步请求public void addUser(View view) { Log.v("MYTAG", "addUser start..."); //1.创建一个http客户端 OkHttpClient httpClient = new OkHttpClient.Builder().build(原创 2020-06-29 19:00:01 · 533 阅读 · 0 评论 -
okhttp的应用详解与源码解析--拦截器源码解析
RetryAndFollowUpInterceptor:重试及重定向拦截器BridgeInterceptor:桥接拦截器CacheInterceptor:缓存拦截器ConnectInterceptor:连接拦截器CallServerInterceptor:读写拦截器文章目录RetryAndFollowUpInterceptorBridgeInterceptorCacheInterceptorConnectInterceptorCallServerInterceptorRetryAndFollow原创 2020-06-28 17:32:06 · 473 阅读 · 0 评论 -
okhttp的应用详解与源码解析--异步请求源码解析
上一篇文章我我们主要分析了okhttp同步请求的处理过程,本篇我们会分析他的异步请求的处理过程,不管是同步和异步其本质核心思想都是一致的,通过建造者来控制整个对象的构建,通过拦截器来控制整个请求的流程,只不过异步任务是在线程池中执行的罢了,就是这么点区别,具体的实现细节,待我慢慢带领大家剖析。文章目录post请求开始RealCall.enqueueDispatcher.enqueueAsyncCall.executeOnAsyncCall.executeRealCall的Interceptor总结pos原创 2020-06-25 10:07:15 · 364 阅读 · 0 评论 -
okhttp的应用详解与源码解析--同步请求源码解析
通过前面几篇文章的学习,我们已经能够通过okhttp发送一个get同求和post请求,而且也体验了它的同步请求和异步请求,通过使用你也会感受到他的使用非常简单,确实非常容易上手,okhttp作为当今最为流行的网络请求框架,从它诞生的那天口碑一直都非常不错,大家都说他好用,功能强大,就究竟好在哪里?强在哪里?它的底层工作原理到底是什么?那么今天这篇文章将帮助大家一探究竟,注意了,该源码分析是基于OkHttpClient 3.12.10的研究。我们还是从之前讲那个同步的用户登录请求开始,看看请求的背后都发生了原创 2020-06-24 17:03:51 · 488 阅读 · 0 评论 -
okhttp的应用详解与源码解析--链式封装
上一篇我们通过集中式封装了okhttp,集中式分装通过OkHttpManager把OkHttpClient,Request,Call,CallBack封装了起来集中管理,这种方式的主要特点就是,今天在换另外另外封装方式:分布式封装,也就是链式封装,链接封装会使你的代码更加条理化,更加优雅。架构分析在前面okhttp使用详解这篇文章我们也认识到 ,无论是OkHttpCleint的创建,还是Request的创建都使用了大量的建造者模式,建造者模式的核心思想就是将对象的创建与表示相分离,建造者的每个方法的的调原创 2020-06-23 14:43:58 · 611 阅读 · 1 评论 -
okhttp的应用详解与源码解析--集中式封装
改进分析上一篇文章主要分享了okhttp的具体应用,我们通过一个同步的get用户登录请求和一个异步的post用户注册请求体验了okhttp的简单与便捷,但是有这么几个问题,首先不管用户登录接口还是用户注册接口,我们的第一步都需要创建一个新的OkHttpClient,如果每发送一个请求都要创建一个新的OkHttpClient 这样就会造成内存资源的浪费,这样明显是不合适的,因此我们可以使用一个单例对其进行封装,第二步通过HttpUrl,和ResponseBody构建了一个Request的请求我们把这块的具体原创 2020-06-23 11:26:26 · 410 阅读 · 0 评论 -
okhttp的应用详解与源码解析--okhttp客户端应用
上一篇文章我们主要分享了使用springboot简单的搭建了一个服务端,并通过接口测试工具PostMan【简单方便,美观大方】进行了的测试调用,本篇我们就来真正的体验一下通过okhttp来请求我们的服务端资源。文章目录测试项目搭建同步的get请求异步的Post请求总结测试项目搭建okhttp现在最新的版本是4.4,4.0以上是kotlin版的,4.0以下的是java版,考虑到大部分用户还是使用java,所以我就选定了okhttp java版中的最后一个版本 3.12.10作为研究对象。首先我们将ok原创 2020-06-22 17:02:23 · 633 阅读 · 0 评论 -
okhttp的应用详解与源码解析--springboot服务端搭建
在前面一篇文章我们主要分享了在Android开发中常用的一些网络请求框架,从刀耕火种时代的直接使用HttpClient和UrlConnection,再到后来对HttpClient进行了封装的AsyncHttpClient,volley,到最后okhttp的一统江湖,今天我们主要来体验一下OkHttp的简单使用。文章目录服务端项目创建数据实体的创建用户服务的创建测试服务总结服务端项目创建首先我们使用 springboot 快速的搭建一个服务端,然后我们的android客户端使用okhttp来访问服务.原创 2020-06-22 15:58:06 · 767 阅读 · 1 评论 -
okhttp的应用详解与源码解析--android网络请求框架发展史
主要分析以下几个框架HttpClientHttpURLConnectionAsyncHttpClientVolleyOkHttpRetrofit文章目录底层网络框架封装的网络框架HttpClientHttpURLConnection存在的问题及解决VolleyOkHttpRetrofitRxJava+Retrofit+OkHttp底层网络框架HttpClient, HttpU...原创 2020-06-17 18:35:39 · 713 阅读 · 0 评论 -
okhttp的应用详解与源码解析--http的发展史
这期专栏的题目:okhttp的应用详解源码解析。之所以选择网络请求这个主题,这是因为我们的每个手机上的几乎每个app应用都离不开它,每个应用都需要和后台去交互,网通通信的功能已经成了每个app必备的一个最基础的功能,就像我们日常生活中离不开水和电一样,如果我们日常生活中没有水和没有电我们生活就没有办法正常的进行了,而我们的app应用中,如果没有了网络通讯的功能这个app就没有灵魂。既然网络通信的功...原创 2020-06-15 11:13:42 · 785 阅读 · 4 评论