如果对Retrofit v2.0的源码感兴趣,可看文章:Android:手把手带你深入剖析 Retrofit 2.0 源码 Carson带你学Android开源库系列文章: Carson带你学Android...Call,*是接收数据的类(即上面定义的Translation类) // 如果想直接获得Responsebody中的内容,可以定义网络请求返回值为Call }...doctype 值是 xml,则去除该值,若 doctype 值是 json,该值为空即可 // xmlVersion:如果 doctype 值是 json,则去除该值,若 doctype 值是 xml...,该值为空即可 // type:语言自动检测时为 null,为 null 时可为空。...总结 看完本文,相信你已经非常熟悉 Retrofit 2.0 的使用 如果你希望继续阅读 Retrofit 2.0 的源码,请看我写的文章:Android:手把手带你深入剖析 Retrofit 2.0
如果对Retrofit v2.0的源码感兴趣,可看文章:Android:手把手带你深入剖析 Retrofit 2.0 源码 目录 ? 简介 ?...Call,*是接收数据的类(即上面定义的Translation类) // 如果想直接获得Responsebody中的内容,可以定义网络请求返回值为Call }...doctype 值是 xml,则去除该值,若 doctype 值是 json,该值为空即可 // xmlVersion:如果 doctype 值是 json,则去除该值,若 doctype 值是 xml...,该值为空即可 // type:语言自动检测时为 null,为 null 时可为空。...看完本文,相信你已经非常熟悉 Retrofit 2.0 的使用 如果你希望继续阅读 Retrofit 2.0 的源码,请看我写的文章:Android:手把手带你深入剖析 Retrofit 2.0 源码
如果对Retrofit v2.0的源码感兴趣,可看文章:Android:手把手带你深入剖析 Retrofit 2.0 源码 ---- 目录 ? ---- 1. 简介 ?...Call,*是接收数据的类(即上面定义的Translation类) // 如果想直接获得Responsebody中的内容,可以定义网络请求返回值为Call }...doctype 值是 xml,则去除该值,若 doctype 值是 json,该值为空即可 // xmlVersion:如果 doctype 值是 json,则去除该值,若 doctype 值是 xml...,该值为空即可 // type:语言自动检测时为 null,为 null 时可为空。...总结 看完本文,相信你已经非常熟悉 Retrofit 2.0 的使用 如果你希望继续阅读 Retrofit 2.0 的源码,请看我写的文章:Android:手把手带你深入剖析 Retrofit 2.0
Android技能树 — 网络小结(6)之 OkHttp超超超超超超超详细解析 Android技能树 — 网络小结(7)之 Retrofit源码详细解析 ---- 正文 因为我平时使用的都是Rxjava2...+ Retrofit ,所以我相关的源码解析都是配合RxJava来的,而不是Call返回对象。...大家也可以看我前面写的:Android技能树 — 网络小结之 OkHttp超超超超超超超详细解析, 同时本文不会再去教大家Retrofit的基础使用,如果要看一些简单使用,可以看下面的一些推荐博客: Android...parseMethodAnnotation(annotation); } //'因为进行方法上面注解的解析了,所以httpMethod的也就相应的被赋值了, 如果为空...那这个队列到底都加了哪些工厂类的,如果我在创建Retrofit对象时候不调用addCallAdapterFactory方法,难道这个队列就是空的????那又怎么去生成CallAdapter对象?
(BasicResponse中的字段内容需要根据自己服务器返回的数据确定)。...如果采用https,我们还可以在此处理证书校验以及服务器校验。 为Retrofit添加GsonConverterFactory。此处是一个比较重要的环节,将在后边详细讲解。...此时服务器会根据错误情况返回对应的错误码。一般来说,我们只关心成功时即code为200时的content数据。而对于code不为200时我们只需要给出对应的Toast提示即可。...在该方法中拿到服务器响应数据并判断code是否为200。如果是,则获取到content并返回,如果不是,则在此处可以抛出对应的自定义的异常。然后再Observer中统一处理异常情况。...上一节中我们讲到了在请求服务器时可能出现的一些例如密码错误、参数错误的情况,服务器给我们返回了对应的错误码,我们根据错误码抛出了对应自定义异常。除此之外在我们发起网络请求时还可能发生一些异常情况。
RxAndroid是RxJava针对Android平台的拓展。...Retrofit是一个封装了okHttp的工具库,在上篇博文 Android 初探Retrofit2.0.1(最新版) 有过介绍,对Retrofit不太了解的读者,建议先行阅读。...onCompleted() 和 onError()还是互斥的,只能调用其中一个 回顾Retrofit 上篇博文我们使用Retrofit实现对网络的访问以及返回数据的解析,详情请见Android 初探Retrofit2.0.1...1.1.0' compile 'io.reactivex:rxjava:1.1.0' 添加限权 android:name="android.permission.INTERNET...gson) { weatherInfoService.getWeatherInfoByRxJava()// 返回类型为Observable
的过程中受到了一些阻力,现 Retrofit2 学会使用了,特此写此文验证所学知识。...需要注意的是converter-gson和retrofit版本号应为一致,在这里我都用2.1.0 创建Bean 创建一个JavaBean,用于解析服务器返回数据。...还有一些要求较高的请求,请看下节。 Retrofit2 大成 如果看到这里,相信对Retrofit2的基本请求会用了,那么这节就说一说其他的网络请求。...因为在build()方法中会判断是否为空,如果我们没有添加okhttpclient 则就是空了,那么retrofit会自动给我们添加了一个new OkHttpClient(); execute是同步执行... get(); 通过RxJavaCallAdapterFactory为Retrofit添加RxJava支持 Retrofit retrofit = new Retrofit.Builder
不知道你有没有发现,在很多互联网公司中,RxJava在开发中占的比例越来越大。 特别是在一些发展速度快,产品迭代更新快的公司中,RxJava经常在面试中出现。...拿我们平时经常处理的网络请求场景做例子,数据可以理解为被观察者,UI元素可以理解为观察者。UI元素会根据数据的变化做响应的改变。RxJava就是基于这么种思想的编程风格。...而Retrofit是以OkHttp为基础封装起来的更简洁的网络请求库,它跟OkHttp是同一个公司的出品。 使用Retrofit的原因不仅因为它封装了更简洁的接口,还因为它兼容RxJava。...如果懒的跳去看的话也没关系,因为这篇文章的目的是感受RxJava带来的优势和便利性,即使不懂Retrofit,也一样能从代码上感受出来。...Retrofit的接口通常是返回Call对象,而这里返回的是Observable对象。
Android MVVM框架搭建(二)Retrofit + RxJava 前言 正文 一、引入依赖 二、工具类 三、构建网络框架 1. Base 2. 异常处理 3. 拦截器 4....必应图片显示 五、源码 前言 在上一篇文章中,简单的介绍了MVVM框架的成员和简单使用,一个成熟的框架自然是离不开网络访问的,因此文本将通过Retrofit + RxJava去为MVVM框架增加一个网络请求模块...:rxjava:2.2.12' //gson implementation 'com.google.code.gson:gson:2.8.7' 添加位置如下图所示: 然后点击Sync...= null) { //刚才上面定义的Map中键是String,值是Retrofit,当键不为空时,必然有值,有值则直接返回。...(), retrofit); //最后返回即可 return retrofit; } /** * 配置RxJava 完成线程的切换
OkHttp+Retrofit+RxJava搭建网络访问框架 前言 正文 一、添加依赖 二、配置OkHttp 三、配置Retrofit 四、配置RxJava 五、增加拦截器 六、自定义Observer...= null && iNetworkRequiredInfo.isDebug()){ //iNetworkRequiredInfo不为空且处于debug状态下则初始化日志拦截器...= null) { //刚才上面定义的Map中键是String,值是Retrofit,当键不为空时,必然有值,有值则直接返回。...(), retrofit); //最后返回即可 return retrofit; } 四、配置RxJava RxJava是对OkHttp的请求返回做处理,那么这个就涉及到线程的切换和异常的处理...} } onBackPressed可以监听页面的返回按钮的点击事件,我在这里判断是否有修改网络环境,因为缓存值修改就意味着网络环境修改,如果已经修改过则在返回页面时结束当前程序的进程,如果没有修改只是关闭当前的
必应图片显示 五、源码 前言 在上一篇文章中,简单的介绍了MVVM框架的成员和简单使用,一个成熟的框架自然是离不开网络访问的,因此文本将通过Retrofit + RxJava去为MVVM框架增加一个网络请求模块...:rxjava:2.2.12' //gson implementation 'com.google.code.gson:gson:2.8.7' 添加位置如下图所示: 然后点击Sync...= null) { //刚才上面定义的Map中键是String,值是Retrofit,当键不为空时,必然有值,有值则直接返回。...(), retrofit); //最后返回即可 return retrofit; } /** * 配置RxJava 完成线程的切换...做上层网络请求接口的封装,同时将需要的数据解析成实体,同时Retrofit还有对RxJava的支持,这样就可以在请求的时候做线程切换,切换到子线程,在数据返回的时候切换到主线程。
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' (...实例 上传文件+字段的时候 必须变为RequestBody 参数 方可才能上传 Retrofit retrofit2 = new Retrofit.Builder() ....: .addCallAdapterFactory(RxJava2CallAdapterFactory.create() 这个是用来决定你的返回值是Observable还是Call 如果返回为Call那么可以不添加这个配置...下一篇巩固一下.我这里说的RxJava过于潦草,如果有深入了解的童鞋,我推荐看一下 Carson_Ho大神的文章 https://www.jianshu.com/nb/14302692 希望可以帮到你
Android网络请求框架是Android开发中必须使用的,个人用过的网络请求框架有Android-async-http,Volley,Okhttp,以及本篇所介绍的Retrofit,...:如果不使用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...总之,RxJava 很强大,能帮我处理很多复杂的场景,如果熟练使用的话,那么能提升我们的开发效率. ...Retrofit+RxJava实现网络请求的简单演示这样就完成了,如果每个接口都这么写的话,代码量太多,而且不优雅。所以还需要我们封装一下,有兴趣的朋友可以自行封装,有好的分享,欢迎投稿。
如果还不了解RxJava,请看文章:Android:这是一篇 清晰 & 易懂的Rxjava 入门教程 RxJava如此受欢迎的原因,在于其提供了丰富 & 功能强大的操作符,几乎能完成所有的功能需求...发送网络请求 对返回的数据进行处理 本实例侧重于说明 RxJava 的轮询需求,关于Retrofit的使用请看文章:这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解) 3.2 步骤实现...// Android 支持 Retrofit compile 'com.squareup.retrofit2:retrofit:2.1.0' // 衔接 Retrofit & RxJava //...此处一定要注意使用RxJava2的版本 compile 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0' // 支持Gson解析 compile...把网络请求的URL分成了两部分:一部分放在Retrofit对象里,另一部分放在网络请求接口里 // 如果接口里的url是一个完整的网址,那么放在Retrofit对象里的URL可以忽略 /
恩,可以看到,已经成功的请求到了结果了,这就是Retrofit的无参简单请求了,但是这里我们其实还可以做点文章,Retrofit + OkHttp + Gson更配哦,那我们添加Gson的Jar之后我们写一个实体类...通过看文档,我们知道,我们需要去配置一个Gson,并不是我们的google.gson,我们添加源 compile 'com.squareup.retrofit2:converter-gson:2.1.0...id和name,如果请求成功,那就返回0,失败就是1,这里服务端定义,这样我们就POST完成了 十一.Post提交表单 根据官网上的例子,还有一个更新用户的方法,用的就是提交表单 @POST("user...,因为我自己也不是很熟,所以我就讲我了解的这一块就好了 十二 Retrofit2.0+ RxJava RxJava使用起来会让我们的代码更加的简洁,高效,那他和Retrofit2.0又会碰到什么样的激情呢...欢迎大家收看今天的人与自然......额 ...跑题了,我们先做一些准备,主要是什么呢,根据官网来看,需要添加 //适配器 compile 'com.squareup.retrofit2
具体实现 下面,我将结合 Retrofit 与RxJava 实现 有条件的轮询需求 3.1 步骤说明 添加依赖 创建 接收服务器返回数据 的类 创建 用于描述网络请求 的接口(区别于Retrofit传统形式...在 Gradle加入Retrofit库的依赖 build.gradle dependencies { // Android 支持 Rxjava // 此处一定要注意使用RxJava2的版本 compile...'io.reactivex.rxjava2:rxjava:2.0.1' compile 'io.reactivex.rxjava2:rxandroid:2.0.1' // Android 支持 Retrofit...'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0' // 支持Gson解析 compile 'com.squareup.retrofit2...把网络请求的URL分成了两部分:一部分放在Retrofit对象里,另一部分放在网络请求接口里 // 如果接口里的url是一个完整的网址,那么放在Retrofit对象里的URL可以忽略 /
如果还不了解RxJava,请看文章:Android:这是一篇 清晰 & 易懂的Rxjava 入门教程 RxJava如此受欢迎的原因,在于其提供了丰富 & 功能强大的操作符,几乎能完成所有的功能需求...具体实现 下面我将结合 Retrofit 与RxJava 实现轮询需求 3.1 步骤说明 添加依赖 创建 接收服务器返回数据 的类 创建 用于描述网络请求 的接口(区别于传统Retrofit形式) 创建...'io.reactivex.rxjava2:rxjava:2.0.1' compile 'io.reactivex.rxjava2:rxandroid:2.0.1' // Android 支持 Retrofit...'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0' // 支持Gson解析 compile 'com.squareup.retrofit2...总结 本文主要讲解了 Rxjava创建操作符的实际开发需求场景:轮询需求 ,并结合Retrofit 与RxJava 实现 接下来的时间,我将持续推出 Android中 Rxjava 2.0 的一系列文章
更多关于REST的介绍:什么是REST - GitHub讲解的非常详细 2.0与1.9使用比较 如果之前使用过Retrofit1,会发现2.0后的API会有一些变化, 比如创建方式,拦截器,错误处理,转换器等...参考:官方CHANGELOG.md 更新到Retrofit2的一些技巧 1.9使用配置 //gson converter final static Gson gson = new GsonBuilder...提供RxJava支持,如果没有提供响应的支持(RxJava,Call),则会跑出异常。...如果想要弄清楚缓存机制,则需要了解一下HTTP语义,其中控制缓存的就是Cache-Control字段....无网读缓存,有网根据过期时间重新请求 用 Retrofit 2 简化 HTTP 请求 Retrofit请求参数注解字段说明 Android文件存储使用参考 - liaohuqiu Retrofit+RxJava
具体实现 下面我将结合 Retrofit 与RxJava 实现轮询需求 3.1 步骤说明 添加依赖 创建 接收服务器返回数据 的类 创建 用于描述网络请求 的接口(区别于传统Retrofit形式) 创建...'io.reactivex.rxjava2:rxjava:2.0.1' compile 'io.reactivex.rxjava2:rxandroid:2.0.1' // Android 支持 Retrofit...'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0' // 支持Gson解析 compile 'com.squareup.retrofit2...添加 网络权限 AndroidManifest.xml android:name="android.permission.INTERNET"/> 步骤2:创建 接收服务器返回数据...把网络请求的URL分成了两部分:一部分放在Retrofit对象里,另一部分放在网络请求接口里 // 如果接口里的url是一个完整的网址,那么放在Retrofit对象里的URL可以忽略 /
领取专属 10元无门槛券
手把手带您无忧上云