然后还可以和时下比较火热的RxJava进行完美融合。...compile 'com.squareup.retrofit2:converter-gson:2.1.0' 有写教程说还有添加gosn库,经过测试是不需要的,converter-gson中已经封装了gson...需要注意的是converter-gson和retrofit版本号应为一致,在这里我都用2.1.0 创建Bean 创建一个JavaBean,用于解析服务器返回数据。...retrofit不仅仅只支持gson,还支持其他许多json解析库。...独断万古 首先说下如何和当前火热的RxJava进行配合使用。
retrofit的初始化 private static Retrofit RETROFIT; private static Retrofit getRetrofit() { if (RETROFIT...的get函数,拿到属于自己的RxJava2CallAdapter @Override public CallAdapter的类型通过callAdapter的adapter函数,看下RxJava2CallAdapter @Override public Object adapt(Call call)...总结: 动态代理实现接口函数调用的拦截 通过返回类型来和CallAdapter.Factory遍历对比调用get函数拿到对应于的callAdapter,然后通过callAdapter.adapter函数来进行数据转换...通过返回类型来和Converter.Factory遍历对比调用responseBodyConverter和requestBodyConverter函数拿到对应于的Converter,然后通过Converter.convert
,会被{@link retrofit2.Converter}转换,如后面会介绍的 使用{@link com.google.gson.Gson} 的 {@link retrofit2.converter.gson.GsonRequestBodyConverter...关于网络请求适配器(CallAdapter) Retrofit支持多种网络请求适配器方式:guava、Java8和rxjava 使用时如使用的是 Android 默认的 CallAdapter,则不需要添加网络请求适配器的依赖...:adapter-guava:2.0.2 Java8 com.squareup.retrofit2:adapter-java8:2.0.2 rxjava com.squareup.retrofit2:adapter-rxjava...Retrofit 的拓展使用 Retrofit的使用场景非常丰富,如支持RxJava和Prototocobuff 具体设置也非常简单 & 方便: Retrofit对象中设置 --> Retrofit...(RxJavaCallAdapterFactory.create()) // 支持RxJava .build(); 具体关于 RxJava的使用这里就不展开,请期待下篇关于 Rxjava的文章。
本文注目录: Retrofit入门 Retrofit注解详解 Gson与Converter RxJava与CallAdapter 自定义Converter 自定义CallAdapter 其它说明 前言...当然你也可以自己借助 json-server 或 最新开源的Parse 搭建一个REST API,不过都需要安装Node.js,有兴趣的可以去试试。 接口列表: ?...接口的类型,如List,Set等,方便向后台传递数组。...4、RxJava与CallAdapter 说到Retrofit就不得说到另一个火到不行的库RxJava,网上已经不少文章讲如何与Retrofit结合,但这里还是会有一个RxJava的例子,不过这里主要目的是介绍使用...提供了多个CallAdapter,这里以RxJava的为例,用Observable代替Call: 引入RxJava支持: compile 'com.squareup.retrofit2:adapter-rxjava
这是一篇RxJava的入门级介绍和接入教程,看完这篇文章你会明白几个问题, · RxJava 是什么 · 它的优势在哪里 · 怎么应用到项目中 RxJava是什么 RxJava是一个框架,也可以理解为一种代码思路...RxJava到现在已经发展到RxJava2了,虽然它的类名和接口名改变了不少,但实际上还是观察者模式。...在RxJava中,最基础也是最根本的是两个接口,Observer 和 Observable,这跟Java中的接口名称是一样的。...代码对比--不使用RxJava 我们写了个demo,用来请求某地区的天气情况,然后更新到UI。 demo中用OkHttp来做网络请求,请求返回的json结果封装成 WeatherBean 类。...如果懒的跳去看的话也没关系,因为这篇文章的目的是感受RxJava带来的优势和便利性,即使不懂Retrofit,也一样能从代码上感受出来。
,会被{@link retrofit2.Converter}转换,如后面会介绍的 使用{@link com.google.gson.Gson} 的 {@link retrofit2.converter.gson.GsonRequestBodyConverter...关于网络请求适配器(CallAdapter) Retrofit支持多种网络请求适配器方式:guava、Java8和rxjava 使用时如使用的是 Android 默认的 CallAdapter,则不需要添加网络请求适配器的依赖...Retrofit 的拓展使用 Retrofit的使用场景非常丰富,如支持RxJava和Prototocobuff 具体设置也非常简单 & 方便: Retrofit对象中设置 --> Retrofit...(RxJavaCallAdapterFactory.create()) // 支持RxJava .build(); 具体关于 RxJava的使用这里就不展开,请期待下篇关于 Rxjava的文章。...源码 接下来,我将继续分析与 Retrofit 配合使用的 RxJava,有兴趣可以继续关注Carson_Ho的安卓开发笔记 ---- 帮顶或评论点赞!
,会被{@link retrofit2.Converter}转换,如后面会介绍的 使用{@link com.google.gson.Gson} 的 {@link retrofit2.converter.gson.GsonRequestBodyConverter...关于网络请求适配器(CallAdapter) Retrofit支持多种网络请求适配器方式:guava、Java8和rxjava 使用时如使用的是 Android 默认的 CallAdapter,则不需要添加网络请求适配器的依赖...Demo地址 Carson_Ho的Github:https://github.com/Carson-Ho/RetrofitDemo Retrofit的使用场景非常丰富,如支持RxJava和Prototocobuff...,请期待下篇关于 Rxjava的文章。...接下来,我将继续分析与 Retrofit 配合使用的 RxJava,有兴趣可以继续关注Carson_Ho的安卓开发笔记
上一篇文章讲了RxJava,这一篇当然就该讲Retrofit了,参考资料: https://blog.csdn.net/gumufuyun/article/details/83619879 1.Retrofit...Retrofit 主要定义了 4 个接口: Callback:请求数据的返回; Converter:对返回数据进行解析,一般用 GSON ; Call:发送请求,Retrofit...默认的实现是 OkHttpCall,也可以依需自定义 Call; CallAdapter:将 Call 对象转换成其他对象,如转换成支持 RxJava 的 Observable对象...2.相关依赖 相关依赖: //添加Retrofit依赖 implementation 'com.squareup.retrofit2:retrofit:2.6.0' //用Gson解析json...那我们先来解释Retrofit的各种注解吧。
://github.com/ReactiveX/RxJava 官网:reactivex.io RxJava是响应式编程(Reactive Extensions)的java实现,它基于观察者模式的实现了异步编程接口...:retrofit:2.7.0’ implementation ‘com.squareup.retrofit2:adapter-rxjava3:2.9.0’ 相关配置module下的build.gradle...和RxJava组合使用时,Retrofit中使用的rxjava适配器(adapter-rxjava3)要和RxJava版本(io.reactivex.rxjava3:rxjava:3.0.0)一致;如本例都是使用的时...://github.com/JakeWharton/RxBinding Gson: https://github.com/google/gson android使用: dependencies {...implementation 'com.google.code.gson:gson:2.8.7' } Gilde: https://github.com/bumptech/glide/releases
支持同步和异步的调用方式 使用注解描述HTTP请求 对象转换,比如从json转换成java对象 支持多请求体(Multipart request body)和文件上传 类库和引用 添加依赖 在你的应用级别的...对比1.9提供默认的json转换器,Retrofit 2.x以后不在提供默认的转换器。...比如你要使用json解析, 你可以使用gson转换器,添加库依赖: compile 'com.squareup.retrofit2:converter-gson:2.1.0' Retrofit支持很多种转换器类型...,根据你的需要,你可以通过gradle引用不同的扩展库: Gson: com.squareup.retrofit2:converter-gson:2.1.0 Moshi: com.squareup.retrofit2...而到了2.x后,仅仅保留了同步和异步机制。 Retrofit 2.x 提供了一种插件扩展的机制支持RxJava。
: "com.squareup.retrofit2:converter-gson:$dependVersion.retrofit2_version", retrofit_adapters...: "com.squareup.retrofit2:adapter-rxjava2:$dependVersion.retrofit2_version"] gson = [gson: "com.google.code.gson...这个接口我们就从网上找了一个关于手机号的省份的api (想和Gsonfromat一样把Json快速生成Kotlin的代码,推荐一个插件JsonToKotlinClass)这样就可以快速根据Json生成...Kotlin的类,使用比较简单和GsonFromat一样的。....Retrofit import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory import retrofit2.converter.gson.GsonConverterFactory
:如果不使用Rxjava,可不引入rx的包) implementation 'com.squareup.retrofit2:retrofit:2.1.0' //retrofit implementation...'com.google.code.gson:gson:2.6.2' //Gson 库 //下面两个是RxJava 和RxAndroid implementation 'io.reactivex:rxjava...(GsonConverterFactory.create()) .build(); Retrofit 使用baseurl和请求路径分离,便于管理,比如服务端下的路径为:http...Call中代表返回的信息类型,一般是一个实体类,因为我们返回的是一个json数组每一个jsonobject是一个Dog对象,返回的信息是Dog类型的List集合(注意:个人测试的接口返回格式不标准,...Retrofit+RxJava实现网络请求的简单演示这样就完成了,如果每个接口都这么写的话,代码量太多,而且不优雅。所以还需要我们封装一下,有兴趣的朋友可以自行封装,有好的分享,欢迎投稿。
(OkHttpCall)转换成适合被不同平台来调用的网络请求执行器形式 如:一开始Retrofit只打算利用OkHttpCall通过ExecutorCallbackCall切换线程;但后来发现使用Rxjava...对象实例的GsonConverterFactory并放入到数据转换器工厂converterFactories里 即Retrofit默认使用Gson进行解析 若使用其他解析方式(如Json、XML或Protocobuf...在创建Retrofit对象时,你可以通过更多更灵活的方式去处理你的需求,如使用不同的Converter、使用不同的CallAdapter,这也就提供了你使用RxJava来调用Retrofit的可能 2....invoke()实现中,除了执行真正的逻辑(如再次转发给真正的实现类对象),还可以进行一些有用的操作 // 如统计执行时间、进行初始化和清理、对接口调用进行检查等。...static class Android extends Platform { // 创建默认的回调执行器工厂 // 如果不将RxJava和Retrofit一起使用,一般都是使用该默认的
} 步骤3:创建 用于描述网络请求 的接口 Retrofit将 Http请求 抽象成 Java接口:采用 注解 描述网络请求参数 和配置网络请求参数 用 动态代理 动态 将该接口的注解...,会被{@link retrofit2.Converter}转换,如后面会介绍的 使用{@link com.google.gson.Gson} 的 {@link retrofit2.converter.gson.GsonRequestBodyConverter...关于网络请求适配器(CallAdapter) Retrofit支持多种网络请求适配器方式:guava、Java8和rxjava 使用时如使用的是 Android 默认的 CallAdapter,则不需要添加网络请求适配器的依赖...Retrofit 的拓展使用 Retrofit的使用场景非常丰富,如支持RxJava和Prototocobuff 具体设置也非常简单 & 方便: Retrofit对象中设置 --> Retrofit...(RxJavaCallAdapterFactory.create()) // 支持RxJava .build(); 具体关于 RxJava的使用这里就不展开,请期待下篇关于 Rxjava的文章。
更好的地方是数据格式从xml变成json了。gson解放了双手,再也不用解析dom了。 早些时期的HTTP框架 后来慢慢出了不少真正的HTTP框架。...(Stay没真的用过xUtils和Afinal这种组合框架,潜意识告诉我,它们有毒,一旦某个环节出问题或者需要扩展,那代价就太大了) Retrofit 好吧,介绍完HTTP框架的发展,让我们单纯的说说Retrofit...比如RxJava会根据调用方法的返回值,如Response |Result|Observable ,生成不同的CallAdapter。实际上就是对RxJava的回调方式做封装。...比如将response再拆解为success和error等。(这块还是需要在了解RxJava的基础上去理解,以后有时间可以再详细做分析) 在步骤5中,我们说CallAdapter还管理线程。...它将response转换成我们具体想要的T。Retrofit提供了很多converter factory。比如Gson,Jackson,xml,protobuff等等。你需要什么,就配置什么工厂。
Retrofit GitHub地址:https://github.com/square/retrofit 热身运动 - 观察者模式 RxJava 的异步实现,是通过一种扩展的观察者模式来实现的。...RxJava除了普通的回调方法onNext()还有onCompleted() 和 onError()。 onCompleted():事件队列完结。...onCompleted() 和 onError()还是互斥的,只能调用其中一个 回顾Retrofit 上篇博文我们使用Retrofit实现对网络的访问以及返回数据的解析,详情请见Android 初探Retrofit2.0.1...(RxJavaCallAdapterFactory.create()) ,这行代码的作用是配置Retrofit回调库,采用RxJava。...接下来会一一讲解 MainActivity#getWeatherInfo() 在这个方法里实现了最基本的RxJava/RxAndroid和Retrofit的结合。
implementation 'com.squareup.retrofit2:retrofit:2.1.0' implementation 'com.squareup.retrofit2:converter-gson...backend-service/config") Call getServerCfg(@Query("env") String env); } POST,带有查询的参数和...,RxJava2 引入依赖 implementation 'com.squareup.retrofit2:retrofit:2.5.0' implementation 'com.squareup.retrofit2...:converter-gson:2.5.0' implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0' implementation '...使用示例 Android OkHttp + Retrofit 取消请求的方法 Android OkHttp + Retrofit 下载文件与进度监听 Android OkHttp + Retrofit
去年的时候学习了Rxjava和Retrofit的基本用法,但一直没有在实际项目中运用。今年开做新项目,果断在新项目中引入了RxJava和Retrofit。...} } RetrofitUtils用来构建Retrofit.Builder,并对OkHttp做以下几个方面的配置: 设置日志拦截器,拦截服务器返回的json数据。...Retrofit将请求到json数据直接转换成了实体类,但有时候我们需要查看json数据,Retrofit并没有提供直接获取json数据的功能。...和Retrofit的二次封装已经基本完成。...和Retrofit的二次封装。
image.png Retrofit是什么 Github地址 Retrofit基于okhttp封装的网络请求框架, 网络请求的工作本质上是 OkHttp 完成,而 retrofit 仅负责网络请求接口的封装...Retrofit优势,就是简洁易用,解耦,扩展性强,可搭配多种Json解析框架(例如Gson),另外还支持RxJava. implementation 'com.squareup.retrofit2:retrofit...:2.6.2' implementation 'com.squareup.retrofit2:converter-gson:2.4.0' gson是用来解析的Json数据使用的(个人偏爱Gson),retrofit...也支持其他解析工具比如fastJson 实战使用 创建Retrofit请求基础配置 Retrofit.Builder()就是希望你根据不同的业务创建出不同的Retrofit来搭配接口服务使用。...())//使用Gson解析 .callbackExecutor(Executors.newSingleThreadExecutor())//使用单独的线程处理 (这很重要,一般网络请求如果不设置可能不会报错
说道RxJava+Retrofit 的组合 大家基本不陌生,先介绍一下Retrofit Retrofit 是一个 RESTful 的 HTTP 网络请求框架的封装,网络请求的工作本质上是 OkHttp...Retrofit的使用 先简单介绍一个网络请求的例子,注解之类的放在后面去说 (1) 添加Retrofit库的依赖 implementation "io.reactivex.rxjava2:rxjava...'com.squareup.retrofit2:converter-gson:2.3.0' implementation 'com.google.code.gson:gson:2.8.5' (...2)创建 用于描述网络请求 的接口 Retrofit将 Http请求 抽象成 Java接口:采用 注解 描述网络请求参数 和配置网络请求参数 public interface Api {...大体使用情况,接下来就简单的介绍RxJava的使用,Retrofit 与RxJava 一百度就很多原理之类的大体说的都差不多,大同小异.我主要以实战为主,如何使用 稍带点基础… 初始化Retrofit的时候的必要配置