Retrofit + Okhttp + Rxjava
yangxi_001
这个作者很懒,什么都没留下…
展开
-
深入浅出 Retrofit,这么牛逼的框架你们还不来看看?
Android 开发中,从原生的 HttpUrlConnection 到经典的 Apache 的 HttpClient,再到对前面这些网络基础框架的封装,比如 Volley、Async Http Client,Http 相关开源框架的选择还是很多的,其中由著名的 Square 公司开源的 Retrofit 更是以其简易的接口配置、强大的扩展支持、优雅的代码结构受到大家的追捧。也正是由于 Squ转载 2017-05-15 16:16:21 · 500 阅读 · 0 评论 -
【OkHttp3源代码分析】(二)Request的enqueue
前言如果没有阅读本系列文章的第一篇,请先阅读:【OkHttp3源代码分析】(一)Request的execute因为这两者之间是有关联的!enqueue执行流程源代码分析先来看看源代码: @Override public void enqueue(Callback responseCallback) { enqueue(resp转载 2017-06-20 12:40:44 · 1225 阅读 · 0 评论 -
OkHttp关于https请求的设置
https请求由于证书验证问题,直接请求一般都会失败.一般是做证书验证处理或者忽略证书验证,这里介绍后者.解决方案从外文文章中看到,这里搬砖一下.希望对大家有帮助[java] view plain copyprivate static OkHttpClient getUnsafeOkHttpClient() { try {转载 2017-06-20 18:26:19 · 2377 阅读 · 0 评论 -
根据Interceptor 分析 OkHttp(一)
在介绍Interceptor前需要理解几个概念Requests每个HTTP请求都包含一个URL,一个method(比如GET/POST),还有一系列的headers。Requests 还可能包含一个body:一个指定content type的data stream。ResponsesResponses是通过一个code(比如200代表请求成功、404转载 2017-06-20 18:32:40 · 565 阅读 · 0 评论 -
根据Interceptor 分析 OkHttp(二)
Interceptor可以说是OkHttp的核心功能,它就是通过Interceptor来完成监控管理、重写和重试请求的。下面是一个简单的Interceptor,可以监控request的输入参数和response的输出内容。class LoggingInterceptor implements Interceptor { @Override public Response interc转载 2017-06-20 18:36:39 · 351 阅读 · 0 评论 -
Retrofit中如何正确的使用https?
很多文章对客户端https的使用都是很模糊的,不但如此,有些开发者直接从网上拷贝一些使用https的“漏洞”代码,无形之中让客户端处在一种高风险的情况下。今天我们就对有关https使用的问题进行深入的探讨,希望能解决以往的困惑。对于https,需要了解其工作原理的可以参考https是如何工作的?,更多关于https的问题我会站在客户端的角度在后面陆陆续续的写出来。证书锁定转载 2017-06-20 18:39:12 · 1046 阅读 · 0 评论 -
OkHttp3.4.x源码剖析
OkHttp在一个月前迎来了3.4.x时代,内部对架构做了大量的修改,移除了HttpEngine的概念,通过Interceptor与Chain用职责链模式来完成整个请求的过程,内部透明的进行了重试,重定向,header替换,gzip解压,存取cookie,读写缓存等过程。笔者研读了源码后觉得十分精彩,于是想分享一下OkHttp的网络请求执行流程与架构。因而不会过多关注其API,但是Ok转载 2017-06-20 18:45:54 · 998 阅读 · 0 评论 -
深入浅出 OkHttp 源码
OkHttp3是Square出品的高质量Http网络请求库,目前在GitHub上的star数超过17000。很多Android项目的网络组件都是基于OkHttp封装的,还有著名的Retrofit也是基于OkHttp封装的。OkHttp的基本使用OkHttpClient client = new OkHttpClient();Request request = new Request.转载 2017-06-21 16:13:18 · 429 阅读 · 0 评论 -
okhttp 内核剖析
基本使用从使用方法出发,首先是怎么使用,其次是我们使用的功能在内部是如何实现的.建议大家下载 OkHttp 源码之后,跟着本文,过一遍源码。官方博客栗子:http://square.github.io/okhttp/#examplesOkHttpClient client = new OkHttpClient();String run(String url) t转载 2017-06-21 16:24:52 · 438 阅读 · 0 评论 -
Retrofit2.0源码解析
Retrofit 是square公司开发的一款对OKHttp进行了进一步封装的网络框架,现在也是android网络请求中非常火的一个网络请求框架,最近在准备面试的时候也刚好复习到了这一块,然后花了几天时间简单地看了下Retrofit2.0源码,分享一下。若有不对的地方,欢迎指正。Retrofit2.0原理Retrofit2.0用了动态代理技术,通过解析注解生成Http请求,把请求交转载 2017-06-22 14:50:29 · 625 阅读 · 0 评论 -
拆Retrofit2.0 的create()方法流程
滚滚长江东逝水,浪花也要乘风迎浪。一直在心里感激在网上写博客的各路大神们,在开发过程中帮助很大,自己也有心向先辈们学习,一来对自己也是一种督促,写博客也是巩固知识的过程,二来也希望能将自己开发中的所学记录下来,说不定能帮助到某些程序猿呢?这也是我的第一篇博客,内容如果有误还请指出来。好了,废话少说,进入正文。Retrofit不用多介绍了,谁用谁知道。我在使用过程中会产生疑问:1.声转载 2017-06-22 15:22:02 · 1606 阅读 · 0 评论 -
RxJava+Retrofit+OkHttp 深入浅出-终极封装一
背景之前学习完Retrofit+Rxjava之后写了一篇关于封装的博客,发出后受到大家的关注以及使用,由于不断的完善之前的项目,所以决定把最新的项目封装过程讲解出来,供大家查看! 原博客地址:Rxjava+ReTrofit+okHttp深入浅出-终极封装效果懒人简单的使用方式为什么称为懒人,因为你什么都不用做,直接按照一般案例写rx和retrofit的使转载 2017-06-12 11:38:23 · 2750 阅读 · 0 评论 -
RxJava+Retrofit+OkHttp深入浅出-终极封装二(网络请求)
背景:CSDN博客发布了一系列的RxJava+Retrofit+OkHttp深入浅出-终极封装 之前发出后收到很多朋友的关注,原本只是自己学习后的一些经验总结,但是有同学运用到实战当中,这让我很惶恐,所有后续一直更新了很多次版本,有些地方难免有所变动导致之前的博客有所出入,正好最近受到掘金邀请内测博客,所以决定重新写一版,按照最后迭代完成的封装详细的讲述一遍,欢迎大家关转载 2017-06-12 11:38:53 · 1124 阅读 · 0 评论 -
RxJava+Retrofit+OkHttp深入浅出-终极封装三(文件上传)
背景在实际运用中上传是一个必不可少的功能,所以我们在封装二的基础上加入上传的功能,同时需要附带上传进度!效果实现1.定义service接口注意:Multipart是指定大文件上传过程中的标示,一般上传图片的过程中我们需要附带信息,所以我们需要用到@part指定传递的数值,MultipartBody.Part是指定传递的文件;> upl转载 2017-06-12 11:40:00 · 469 阅读 · 0 评论 -
RxJava+Retrofit+OkHttp深入浅出-终极封装五(数据持久化)
背景数据持久化在现在移动app开发中已经越来越被大家认可,提高了用户体验和软件的稳定性,但是由于retrofit持久化的局限性,所以需要自己动手改造一个适合自己的数据持久化方案!封装效果 第一次请求是网络加载,之后只要在设置的保鲜时间以内都是通过缓存拉取数据,提高加载速度!下面我们分两节讲解,一节讲述自带的retrofit-cache用法和缺陷,一节讲述自己定义转载 2017-06-12 12:00:23 · 593 阅读 · 0 评论 -
RxJava+Retrofit+OkHttp深入浅出-终极封装六特殊篇(变种String替换Gson自由扩展)
背景在之前的封装1-5Rxjava+ReTrofit+okHttp深入浅出-终极封装中我们都是通过传统的GsonConverterFactory自动解析,这样做确实很方便,用户能直接获取返回的对象,不用关心具体的转换,但是:这随之而来有很多的缺陷(虽然官网推荐这样使用);比如:无法使用其他第三发转换框架;泛型无法中间传递,封装无法统一处理缓存结果;回调信息无法统一处理;服务器返回格转载 2017-06-12 12:08:39 · 527 阅读 · 0 评论 -
RxJava+Retrofit+OkHttp深入浅出-终极封装七(异常处理)
背景在前面Rxjava+ReTrofit+okHttp深入浅出-终极封装专栏我们已经全面的封装了一套可以投入实战的框架,最近开设了微信群中有兄弟说异常处理这块可以优化优化并给出了建议参考项目,果断重新将之前的封装完善走起来,将请求过程中的处理统一封装起来,回调给调用者,根据自定义回调类型方便查询错误类型和信息。前提本章的内容基于掌握了前面封装的原理以后,学期起来才能完全转载 2017-06-12 12:09:57 · 572 阅读 · 0 评论 -
RxJava+Retrofit+OkHttp深入浅出-mvp(使用篇)
背景RxJava+Retrofit+OkHttp封装系列也基本完成了,功能无太大迭代的需要,但是最近QQ群中有兄弟问如何结合mvp使用这套框架,仔细考虑下确实现在结合mvp开发项目已经是一种大趋势,不得不感叹现在技术更新的真是太快了,所以决定再一次操刀讲解下结合mvp使用需要注意的细节。思路既然是结合mvp,那就必须先了解mvp是很方圣神了,之前也出过相关的博文,就不啰嗦了转载 2017-06-12 12:10:42 · 1330 阅读 · 0 评论 -
【OkHttp3源代码分析】(一)Request的execute
简单使用OkHttp3阅读本文需要对OkHttp3的使用有一定了解。首先我们先看看如何简单进行一个get请求的Request。Request qqRequest = new Request.Builder() .url("http://www.qq.com")转载 2017-06-20 12:39:22 · 1689 阅读 · 0 评论 -
OKHttp源码解析
转载出处:http://frodoking.github.io/2015/03/12/android-okhttp/Android为我们提供了两种HTTP交互的方式:HttpURLConnection 和 Apache HTTP Client,虽然两者都支持HTTPS,流的上传和下载,配置超时,IPv6和连接池,已足够满足我们各种HTTP请求的需求。但更高效的使用HTTP可以让您的应用运行转载 2017-06-19 21:05:46 · 454 阅读 · 0 评论 -
Retrofit2 完全解析 探索与okhttp之间的关系
一、概述之前写了个okhttputils的工具类,然后有很多同学询问这个工具类和retrofit什么区别,于是上了下官网,发现其底层对网络的访问默认也是基于okhttp,不过retrofit非常适合于restful url格式的请求,更多使用注解的方式提供功能。既然这样,我们本篇博文首先研究其所提供的常用的用法:一般的get、post请求动态url,动态参数设置,各种注转载 2017-05-15 18:03:59 · 584 阅读 · 0 评论 -
RxJava 与 Retrofit 结合的最佳实践
前言RxJava和Retrofit也火了一段时间了,不过最近一直在学习ReactNative和Node相关的姿势,一直没有时间研究这些新东西,最近有个项目准备写,打算先用Android写一个Demo出来,却发现Android的世界发生了天翻地覆的变化,EventBus和OKHttp啥的都不见了,RxJava和Retrofit是什么鬼?好吧,到Github上耐着性子看过了RxJava转载 2017-05-16 15:12:41 · 318 阅读 · 0 评论 -
Retrofit + RxJava + OkHttp 让网络请求变的简单-基础篇
最近因为手头上的工作做完了,比较闲,想着做一些优化。看到以前用的那一套网络框架添加一个请求比较麻烦,并且比较难用,所以想改造一下网络框架。现在Android 市面上很火的当然是 Retrofit+RxJava + OkHttp, 功能强大,简单易用,因此选用这套方案来改造网络库。本篇文章是对Retrofit 的基本使用方法做一些简单的介绍。后面会再写一篇 Retrofit + RxJava + O转载 2017-05-17 18:57:42 · 3260 阅读 · 0 评论 -
Retrofit + RxJava + OkHttp 让网络请求变的简单-封装篇
前面一篇文章讲了一下Retrofit+ RxJava 请求网络的一些基本用法,还没有看过的可以去看一下Retrofit + RxJava + OkHttp 让网络请求变的简单-基础篇,正如标题所说的,Retrofit+RxJava 是让我们的网络请求变得简单,代码精简。通过前一篇文章,我们感觉写一个请求还是有点麻烦,作为程序员,我们的目标就是“偷懒”,绝不重复搬砖。因此我们还需要封装一下,来简转载 2017-05-17 18:58:32 · 1797 阅读 · 0 评论 -
RxJava + Retrofit完成网络请求
RxJava + Retrofit前言本文基于RxJava、Retrofit的使用,若是对RxJava或Retrofit还不了解的简友可以先了解RxJava、Retrofit的用法再来看这篇文章。在这片文章之前分别单独介绍过Rxjava以及Retrofit的使用:Android Retrofit 2.0 的使用Android RxJava的使用(一)基本用法(以转载 2017-05-17 19:00:04 · 725 阅读 · 0 评论 -
Android okHttp网络请求之Retrofit+Okhttp+RxJava组合
前言: 通过上面的学习,我们不难发现单纯使用okHttp来作为网络库还是多多少少有那么一点点不太方便,而且还需自己来管理接口,对于接口的使用的是哪种请求方式也不能一目了然,出于这个目的接下来学习一下Retrofit+Okhttp的搭配使用。 okHttp相关文章地址:Android okHttp网络请求之Get/Post请求Android okHttp网络请求转载 2017-05-17 19:02:28 · 552 阅读 · 0 评论 -
Retrofit by Tamic -- 码小白
Tamic -- 码小白 Retrofit转载 2017-05-17 19:11:59 · 302 阅读 · 0 评论 -
OkHttp3源码分析[综述]
OkHttp系列文章如下OkHttp3源码分析[综述]OkHttp3源码分析[复用连接池]OkHttp3源码分析[缓存策略]OkHttp3源码分析[DiskLruCache]OkHttp3源码分析[任务队列]本文主要是综述与常识介绍OkHttp是一个高效的Http客户端,有如下的特点:支持HTTP2/SPDY黑科技socket自动选择最好路线,并支持自动重连拥有转载 2017-06-19 11:38:21 · 474 阅读 · 0 评论 -
OkHttp3源码分析[复用连接池]
OkHttp系列文章如下OkHttp3源码分析[综述]OkHttp3源码分析[复用连接池]OkHttp3源码分析[缓存策略]OkHttp3源码分析[DiskLruCache]OkHttp3源码分析[任务队列]1. 概述HTTP中的keepalive连接在网络性能优化中,对于延迟降低与速度提升的有非常重要的作用。通常我们进行http连接时,首先进行tcp握手,然后转载 2017-06-19 11:42:17 · 907 阅读 · 0 评论 -
OkHttp3源码分析[缓存策略]
OkHttp系列文章如下OkHttp3源码分析[综述]OkHttp3源码分析[复用连接池]OkHttp3源码分析[缓存策略]OkHttp3源码分析[DiskLruCache]OkHttp3源码分析[任务队列]本文专门分析OkHttp的缓存策略,应该是okhttp分析中最简单的一篇了HTTP缓存基础知识在分析源码之前,我们先回顾一下http的缓存Header的含义转载 2017-06-19 11:44:02 · 495 阅读 · 0 评论 -
OkHttp3源码分析[DiskLruCache]
OkHttp系列文章如下OkHttp3源码分析[综述]OkHttp3源码分析[复用连接池]OkHttp3源码分析[缓存策略]OkHttp3源码分析[DiskLruCache]OkHttp3源码分析[任务队列]本文目录:Cache的简介LinkedHashMap原理OkHttp的文件系统本文主要是对put/get过程进行分析,注意缓存的判断依据不是本文,而是缓存策略转载 2017-06-19 11:47:17 · 1262 阅读 · 1 评论 -
OkHttp3源码分析[任务队列]
OkHttp系列文章如下OkHttp3源码分析[综述]OkHttp3源码分析[复用连接池]OkHttp3源码分析[缓存策略]OkHttp3源码分析[DiskLruCache]OkHttp3源码分析[任务队列]本文目录:线程池基础反向代理模型OkHttp的任务调度看过Wiki的都知道OkHttp拥有2种运行方式,一种是同步阻塞调用并直接返回的形式,另一种是通过内部线程转载 2017-06-19 11:48:04 · 864 阅读 · 0 评论 -
OkHttp 3.7源码分析(一)——整体架构
OkHttp是一个处理网络请求的开源项目,是Android端最火热的轻量级框架,由移动支付Square公司贡献用于替代HttpUrlConnection和Apache HttpClient。随着OkHttp的不断成熟,越来越多的android开发者使用OkHttp作为网络框架。之所以可以赢得如此多开发者的喜爱,主要得益于如下特点:支持HTTPS/HTTP2/WebSocket(转载 2017-06-19 12:01:36 · 737 阅读 · 0 评论 -
OkHttp 3.7源码分析(二)——拦截器&一个实际网络请求的实现
前一篇博客中我们介绍了OkHttp的总体架构,接下来我们以一个具体的网络请求来讲述OkHttp进行网络访问的具体过程。由于该部分与OkHttp的拦截器概念紧密联系在一起,所以将这两部分放在一起进行讲解。1.构造Demo首先构造一个简单的异步网络访问Demo:OkHttpClient client = new OkHttpClient(); Request requ转载 2017-06-19 12:03:52 · 448 阅读 · 0 评论 -
OkHttp 3.7源码分析(三)——任务队列
前面的博客已经提到过,OkHttp的一个高效之处在于在内部维护了一个线程池,方便高效地执行异步请求。本篇博客将详细介绍OkHttp的任务队列机制。1. 线程池的优点OkHttp的任务队列在内部维护了一个线程池用于执行具体的网络请求。而线程池最大的好处在于通过线程复用减少非核心任务的损耗。多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间转载 2017-06-19 13:03:51 · 432 阅读 · 0 评论 -
OkHttp 3.7源码分析(四)——缓存策略
合理地利用本地缓存可以有效地减少网络开销,减少响应延迟。HTTP报头也定义了很多与缓存有关的域来控制缓存。今天就来讲讲OkHttp中关于缓存部分的实现细节。1. HTTP缓存策略首先来了解下HTTP协议中缓存部分的相关域。1.1 Expires超时时间,一般用在服务器的response报头中用于告知客户端对应资源的过期时间。当客户端需要再次请求相同资源时先比较其过期转载 2017-06-19 13:04:55 · 544 阅读 · 0 评论 -
OkHttp 3.7源码分析(五)——连接池
接下来讲下OkHttp的连接池管理,这也是OkHttp的核心部分。通过维护连接池,最大限度重用现有连接,减少网络连接的创建开销,以此提升网络请求效率。1. 背景1.1 keep-alive机制在HTTP1.0中HTTP的请求流程如下:这种方法的好处是简单,各个请求互不干扰。但在复杂的网络请求场景下这种方式几乎不可用。例如:浏览器加载一个HTML网页,HTML转载 2017-06-19 13:06:05 · 592 阅读 · 0 评论 -
Android中RxJava+Retrofit2.0+MVP模式的整合
MVP的工作原理以上是MVP的工作原理图。其中大家注意的Presenter操作View和Mode都是通过接口来实现直接的调用。MVP的工作流程Presenter负责逻辑的处理,Model提供数据,View负责显示。 作为一种新的模式,在MVP中View并不直接使用Model,它们之间的通信是通过Presenter来进行的,所有的交互都发生在Presenter内部转载 2017-06-13 15:43:01 · 837 阅读 · 0 评论