OkHttp3 + retrofit2 封装】的更多相关文章

0.下载文件 1.gradle 添加 compile 'com.squareup.retrofit2:retrofit:2.1.0'compile 'com.squareup.retrofit2:converter-gson:2.1.0'compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0' compile 'com.squareup.okhttp3:okhttp:3.4.1'compile 'com.squareup.okio:okio:1.…
okHttp都已经出到3.2.0了,现在才开始要用到它,感觉自己好low~~ 根据平时自己的习惯,还是自己做一下封装,让代码撸起来更加顺畅一点! okhttp-3.2.0和okio-1.7.0就不多说 首先建一个OkHttpUtils的类 /** * HTTP通讯结构处理器 * */ public class OkHttpUtils { private static final byte[] LOCKER = new byte[0]; private static OkHttpUtils mIn…
最近打算在新项目中使用 okhttp3, 简单封装了一下异步 get post 因为 CallBack 也是在子线程中执行,所以用到了 Handler public class MyOkHttpClient { private static MyOkHttpClient myOkHttpClient; private OkHttpClient okHttpClient; private Handler handler; private MyOkHttpClient() { okHttpClien…
1:实现Callback回调接口import android.os.Handler;import android.os.Looper;import android.os.Message;import java.io.IOException;import okhttp3.Call;import okhttp3.Callback;import okhttp3.Response;/** * 封装了OkCallback的处理 2016 - 10 - 14 * * @param <ResponseResu…
1:实现Callback回调接口import android.os.Handler;import android.os.Looper;import android.os.Message; import java.io.IOException; import okhttp3.Call;import okhttp3.Callback;import okhttp3.Response; /** * 封装了OkCallback的处理 2016 - 10 - 14 * * @param <ResponseR…
参考 <设计模式:可复用面向对象软件的基础 >5.7 Observer 观察者 对象行为型模式 <设计模式解析> 18.4 Observer模式 <Android源码设计模式解析与实战>第12章 解决,解耦的钥匙--观察者模式 本人能力有限,如有明显错误,不规范的地方,请指正,谢谢. 意图 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新. 别名 依赖(Dependents)发布-订阅(Publish-Subscrib…
一个成功的App背后肯定有一堆后端服务提供支撑,认证授权服务(Authentication and Authorization Service,以下称AAS)就是其中之一,它是约束App.保障资源安全的必备组件.现在也有第三方平台提供此类服务,但万事不求人,自己撸才是我们的风格. 本文假设读者有一定的OAuth2知识,若没有可先阅读博主以前写的一篇博文,或其它资料. Why PKCE? 当我们开发一个App(本文指的是Native App),选择何种AAS协议或模式是必须要谨慎考虑的问题.这就需…
工欲善其事必先利其器.像我们从零开始撸一个App的话,选择最合适的语言是首要任务.如果你跟我一样对Java蹒跚的步态和僵硬的语法颇感无奈,那么Kotlin在很大程度上不会令你失望.虽然为了符合JVM规范和兼容Java,它引入了一些较为复杂的概念和语法,很多同学就是因此放弃入门.其实越深入进去,就会越欲罢不能.除了Android开发,博主也常在后端使用Kotlin编码,有时因为某些原因同时使用Java混编.总的来说,能减少代码量,提高生产效率,似乎代码结构也更清晰了.如果你没有Kotlin的经验,…
eclipse的jar包配置 eclipse中貌似用不了butterknife buildToolsVersion "23.0.2" defaultConfig { applicationId "com.Example.ljd.retrofit" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyE…
所有代码亲测可用,如有问题,欢迎指正. 首先在ApiService接口文件中新建文件上传接口 public interface ApiService { static final String BASE_URL=" http://192.168.3.102:8080/"; /** * 上传多头像 */ @Multipart @POST("wzly/uploadImg") Observable<String> uploadMemberIcon(@Part…
关于Retrofit+OkHttp的强大这里就不多说了,还没了解的同学可以自行去百度.这篇文章主要讲如何利用Retrofit+OkHttp来实现一个较为简单的缓存策略:即有网环境下我们请求数据时,如果没有缓存或者缓存过期了,就去服务器拿数据,并且将新缓存保存下来,如果有缓存而且没有过期,则直接使用缓存.无网环境下我们请求数据时,缓存没过期则直接使用缓存,缓存过期了则无法使用,需要重新联网获取服务器数据. 缓存处理还是很有必要的,它有效的减少服务器负荷,降低延迟提升用户体验,同时也方便用户即使在没…
1.Retrofit+OkHttp的缓存机制 1.1.第一点 在响应请求之后在 data/data/<包名>/cache 下建立一个response 文件夹,保存缓存数据. 1.2.第二点 这样我们就可以在请求的时候,如果判断到没有网络,自动读取缓存的数据. 1.3.第三点 同样这也可以实现,在我们没有网络的情况下,重新打开App可以浏览的之前显示过的内容. 1.4.第四点 也就是:判断网络,有网络,则从网络获取,并保存到缓存中,无网络,则从缓存中获取. 1.5.github地址+参考文章 g…
在构建网络层时会遇到一个问题就是要手动配置Http请求的Headers,写入缓存Cookie,自定义的User-Agent等参数,但是对于有几十个接口的网络层,我才不想用注解配置Headers,目前网上很多文章的方法真对这两个版本都不是很适用,有的给出的方法已经被删除,有的方法会报出异常 :( 方法一: 在翻阅官方API文档整理后的方法如下: 1.  import okhttp3.Interceptor; 2.  import okhttp3.OkHttpClient; 3.  import o…
Retrofit2.0通俗易懂的学习姿势,Retrofit2.0 + OkHttp3 + Gson + RxJava Retrofit,因为其简单与出色的性能,也是受到很多人的青睐,但是他和以往的通信框架还是有点区别,不过放心,因为他本身还是挺简单的,所有我相信你看完这篇文章,对基本的请求是没什么问题的,其实现在网上这样的文章也有很多了,好了,那我们直接开车吧! 一.相关资料 Github:https://github.com/square/retrofit 官网文档:http://square…
csdn :码小白 原文地址: http://blog.csdn.net/sk719887916/article/details/51958010 RetrofitClient 基于Retrofit2.0封装的RetrofitClient. 已加入RxJava 避免重复创建Retrofit实列. 调用方便简洁. 无需重复设置属性的步骤. 可固定配置 Host 也可动态配置Url.请求头.参数等. 支持文件下载和上传. 可支持泛型扩展的ApiService 支持RxJava 支持缓存机制 支持统一…
原文出自csdn: http://blog.csdn.net/sk719887916/article/details/51700659: 通过对Retrofit2.0的<Retrofit 2.0 超能实践,完美支持Https传输>基础入门和案例实践,掌握了怎么样使用Retrofit访问网络,加入自定义header,包括加入SSL证书,基本的调试基础,但是正常的开发中会涉及cookie同步问题,可以实现一些自动或免登录登陆问题,接下来进入cookie同步姿势 Cookie Cookies是一种能…
开始使用 在app目录下的build.gradle中添加依赖: implementation 'com.squareup.okhttp3:okhttp:3.13.1' implementation 'com.squareup.okio:okio:2.2.2' GET方法 OkHttpClient client = new OkHttpClient.Builder().build(); Request.Builder builder = new Request.Builder().url(url)…
本文是 Android RxJava2+Retrofit2+OkHttp3 的使用(一) --基础篇 Retrofit2 的使用 本文的目标是用 Retrofit写一个网络请求: 本文以从获取天气预报接口 (具体接口查看上文 免费天气预报接口)为例,讲解 Retrofit2 的使用 废话不多说,开撸 一.添加依赖 在build.gradle文件中添加如下配置 //retrofit2 compile 'com.squareup.retrofit2:retrofit:2.3.0'//导入retrof…
[Android] Android RxJava2+Retrofit2+OkHttp3 简单介绍Retrofit.OKHttp和RxJava之间的关系: Retrofit:Retrofit是Square公司开发的一款针对Android 网络请求的框架(底层默认是基于OkHttp 实现). OkHttp:也是Square公司的一款开源的网络请求库. RxJava :"a library for composing asynchronous and event-based programs usin…
响应式编程框架,rxjava的扩展,很爽的链式编程 魅力在于对数据的处理,与线程切换的灵活性. 用来处理异步操作(Lambda表达式不会用.用Lambda表达式代码会更少,但不会的人会看不懂代码.不是很推荐) RxBus 用RxJava实现的EventBus 说说为什么要配合起来用 Retrofit负责链接网络,请求网络. RxAndroid负责处理请求的结果.异步操作 RxBus可以很方便的进行各组件之间的通信. 我之前是用asynchttpclient做网络请求的,各种代码缩进,if套if,…
RxJava2和Retrofit2用的越来越多,最近也在封装一个通用的网络请求库,其中就包括了单文件下载的方法,所以这里进行记录.文末附带Demo 由于网上很多的方法都是使用拦截器进行进度的监听,个人觉得使用起来非常复杂和,所以取了个巧,在文件写入到硬盘的时候对文件读写进行监听,就解决了retrofit2下载文件没有进度监听的问题. 先上封装之后的使用代码,使用简单,直接回调下载之后的文件 封装步骤 1.定义接口(使用的时候传入完整的url,@Streaming注解可用于下载大文件) @Stre…
封装目的:屏蔽底层实现,提供统一接口,并支持Gson自动转化 最初封装: //请求方法 interface RequestListener { interface PostListener { @POST fun <T>call(@Url url: String, @Body t:Any) : Call<T> } } //封装请求 class NetUtils private constructor(retrofit: Retrofit){ private val mRetrofi…
retrofit 英文名字是改装的意思,也就是说他是对网络请求的一种改装,他不负责进行网络请求,他是对请求方式的一种封装.真正进行网络请求的是okhttp. 以下所有内容在Android Studio已经导入retrofit为基础.导入方式如下: compile 'com.squareup.retrofit2:retrofit:2.1.0' compile 'com.squareup.retrofit2:converter-gson:2.1.0' compile 'com.squareup.re…
就目前来说Retrofit2使用的已相当的广泛,那么我们先来了解下两个问题: 1 . 什么是Retrofit? Retrofit是针对于Android/Java的.基于okHttp的.一种轻量级且安全的.并使用注解方式的网络请求框架. 2 . 我们为什么要使用Retrofit,它有哪些优势? 首先,Retrofit使用注解方式,大大简化了我们的URL拼写形式,而且注解含义一目了然,简单易懂: 其次,Retrofit使用简单,结构层次分明,每一步都能清晰的表达出之所以要使用的寓意: 再者,Retr…
1,昨天我们基本上把MVP给封装起来了,今天接着昨天的东西来结合RxJava把Retrofit把网络框架简单的封装一下,先看一下我们今天实现的效果: 哈哈 ,还是昨天的效果,好吧 ,我认错. 2,由于这次是把RxJava给接入进来了,所以我们可以对昨天的BasePresenter再次进行封装 BaseRxPresenter.java package com.qianmo.myview2.base; import rx.Subscription; import rx.subscriptions.C…
1,继续接着上一篇的讲讲,话说如果像上一篇这样的话,那么我们每一次请求一个结构都要创建一堆的Retrofit对象,而且代码都是相同的,我们可以试试封装一下 先创建一个HttpMethods类,将Retrofit对象创建封装起来 HttpMethods.java package com.qianmo.retrofitdemo.http; import com.qianmo.retrofitdemo.entry.MovieEntity; import java.util.concurrent.Tim…
本文将顺着构建请求对象→构建请求接口→发起同步/异步请求的流程,分析retrofit2是如何实现的. 组成部分 Retrofit2源码主要分为以下几个部分: retrofit retrofit-adapters retrofit-converters 本篇先分析retrofit部分,也就是retrofit源码的主干部分. 下面顺着retrofit2的使用流程进行分析. Retrofit对象的构建 首先我们看看构建一个Retrofit对象,都需要或者可选哪些配置: 1234567891011121…
简介 官网:http://square.github.io/retrofit/ GitHub:https://github.com/square/retrofit/ compile 'com.squareup.retrofit2:retrofit:2.0.2' compile 'com.squareup.retrofit2:converter-gson:2.0.2' 在对Android 开发中,我们都是从原生的 HttpUrlConnection到经典的 Apache公司的HttpClient,…
在前面已经初步封装了一个MVP的网络请求框架,那只是个雏形,还有很多功能不完善,现在进一步进行封装.添加了网络请求时的等待框,retrofit中添加了日志打印拦截器,添加了token拦截器,并且对DataManager类进行了扩展,真正体现它的作用,并且对大量的重复代码做了一定封装,减少代码的冗余. 下面结合上篇文章,进行下一步的封装. 1.首先完善Result.java这个类. 通常在我们写API接口文档的时候,后端返回的数据格式都是 "code":1    //1:成功 //-1:…
代码地址:https://github.com/DarkPointK/RxTrofit.git 前言 Retrofit是Square公司开发的一个类型安全的Java和Android 的REST客户端库.来自官网的介绍: A type-safe HTTP client for Android and Java Rest API是一种软件设计风格,服务器作为资源存放地.客户端去请求GET,PUT, POST,DELETE资源.并且是无状态的,没有session的参与. retrofit模型如下: P…