一:Retrofit是什么? 准确来说,Retrofit 是一个 RESTful 的 HTTP 网络请求框架的封装。...在服务端返回数据之后,OkHttp 将原始的结果交给 Retrofit,Retrofit根据用户的需求对结果进行解析。...二: Retrofit 对Okhttp做了什么 Retrofit并没有改变网络请求的本质,也无需改变,因为Okhttp已经足够强大,Retrofit的封装可以说是很强大,里 面涉及到一堆的设计模式,...2.2 Retrofit请求总结 【Retrofit 进行网络请求的流程样板代码】 //step1 Retrofit retrofit = new Retrofit.Builder()...请看下面的文章 三: Retrofit的构建过程 Retrofit通过build模式来生成一个Retrofit对象,通过代码我们知道,Retrofit默认会使用OkHttp来发送网络请求,当 然,我们也可以自己定制
的使用教程系列的 博客,写作思路大概如下 先从retrofit的基本使用讲起; 接着将retrofit结合RxJava的使用; 接着讲Retrofit的封装使用,(包括错误统一处理); 有时间和能力的话会尝试研究一下...retrofit的 源码....本篇博客主要讲解以下问题 Retrofit简介 Retrofit的简单使用例子 Retrofit的get请求 Retrofit的put请求(提交表单数据) 如何为 retrofit添加header 如何提交...json数据 Retrofit简介 Retrofit是square开源的网络请求库,底层是使用OKHttp封装的,网络请求速度很快....:retrofit:2.1.0' compile 'com.squareup.retrofit2:converter-gson:2.1.0' 2) 创建Retrofit对象 Retrofit retrofit
前言 什么是Retrofit?...这类文章太多了,这里就不多做介绍,贴个官方链接: http://square.github.io/retrofit/ 以前抱着新鲜感使用Retrofit, 并没有感觉出太大的用处,最近接触到了RESTful...API 才感受到了Retrofit的方便与强大。...读本文之前,建议对RxJava, Retrofit, RESTful稍做了解: RESTful API 设计指南 RxJava 与 Retrofit 结合的最佳实践 关于RESTful API我再补充一句...retrofit = new Retrofit.Builder() .baseUrl(baseUrl) .client(okHttpClient
绪论: 之前我们分析了使用Retrofit怎么用OkHttp持久化管理Cookie,今天打算继续跟大家来分享一些关于怎么去设置OKHttp?...如果你还不知道怎么持久化管理Cookie,请看这篇文章: Retrofit+OKHttp 教你怎么持久化管理Cookie,好了,废话不多说,开始今天的分享: 大家都知道Retrofit是Square公司基于...切入正题:我们先看一下Retrofit里面都包括那些东西吧: 我们可以看到Retrofit里面东西非常少,http包里面的注解的东西,剩下的就这几个类和这几个接口,因为Retrofit把网络请求交给了...OkHttp去做,我们来详细介绍一个这个类: Call: 这个接口主要的作用就是发送一个Http请求,Retrofit的默认请求方式是OKHttpCall,当然你也可以根据自己的业务逻辑自己定义Call...其它的一些类就不一一介绍了,毕竟这篇文章的主题不是源码解析,如果你想从源码的角度去了解Retrofit,我推荐你可以去看这两篇文章: Retrofit2 完全解析 探索与okhttp之间的关系 Retrofit
如果你还不知道怎么持久化管理Cookie,请看这篇文章: Retrofit+OKHttp 教你怎么持久化管理Cookie,好了,废话不多说,开始今天的分享: 大家都知道Retrofit是Square公司基于...切入正题:我们先看一下Retrofit里面都包括那些东西吧: image.png 我们可以看到Retrofit里面东西非常少,http包里面的注解的东西,剩下的就这几个类和这几个接口,因为...Retrofit把网络请求交给了OkHttp去做,我们来详细介绍一个这个类: Call: 这个接口主要的作用就是发送一个Http请求,Retrofit的默认请求方式是OKHttpCall,当然你也可以根据自己的业务逻辑自己定义...其它的一些类就不一一介绍了,毕竟这篇文章的主题不是源码解析,如果你想从源码的角度去了解Retrofit,我推荐你可以去看这两篇文章: Retrofit2 完全解析 探索与okhttp之间的关系...Retrofit分析-漂亮的解耦套路 好了,我们看了Retrofit包里面并没有网络请求的部分,因为它是依赖OKHttp实现的一个网络框架,那么有关网络的一部分设置比如cookie的设置、网络超时的设置
4个变量也不一定必须要,这时我们想到了builder,可以这样写: New Callexector.builder().setXXX.build(); 定制okhttpclient 本文旨在模拟Retrofit...Square真是喜欢泛型转化,不管RXJAVA还是Retrofit都有泛型转化 到这里你以为结束了吗?...NO,NO,NO,下面才是重点 我们看以上代码,这样自己定义接口动态代理实现的方式也真是挺高端了,但是与retrofit功能相比还有一个地方不同,我们在定义接口的时候直接返回结果了,这样我们假如想要得到...还是差一些,哪里呢,Retrofit的返回类型包装类(我们这里是CallImpler)也是可以转化的哦,那么又是泛型转化!... adapterFactories CallImpler -> Retrofit.Call CallBack -> Retrofit.CallBack
I setup for Retrofit: private Interceptor interceptor = new Interceptor() { @Override public Response...) .readTimeout(30, TimeUnit.SECONDS) .build(); and then set this okHttpClient with RetrofitBuilder, Retrofit.Builder
并且Retrofit与异步请求框架和类解析框架解耦,使得Retrofit可以适配多种框架,使用者可以轻松的选择适合自己项目的异步请求和解析的框架。...代理模式 Retrofit使用了动态代理,用户编写接口,告诉Retrofit想要什么样的方法,Retrofit通过动态代理来生成实例对象。用动态代理,完成了从接口到实例对象的过程。...总结 Retrofit的设计符合了高内聚,低耦合的原则,有效的将其他框架组织起来,并使其之间解耦,这增强了Retrofit的易用性和灵活性。...Retrofit合理运用多种设计模式以及其面向接口的编程方式是其达到高内聚低耦合的关键。没有重新造轮子,而是复用其他轮子,让轮子们高效组合到一起也是Retrofit的意义。...Retorfit 使用 Retrofit retrofit = new Retrofit.Builder() .baseUrl(url) .addCallAdapterFactory
本文解析的 Retrofit 基于 v2.3.0 ,GitHub 地址:https://github.com/square/retrofit Retrofit 使用方法 直接抄官网的: 第一步,声明 API...对象: Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.github.com/") .addConverterFactory...Retrofit.Builder 首先切入点就是 Retrofit.Builder 。...我们先把目光聚焦在 Retrofit 类上。 Retrofit Retrofit 类的构造方法没什么好看的,在这就不讲了。...那就进入对应构造方法: public Builder(Retrofit retrofit, Method method) { this.retrofit = retrofit; this.method
说道RxJava+Retrofit 的组合 大家基本不陌生,先介绍一下Retrofit Retrofit 是一个 RESTful 的 HTTP 网络请求框架的封装,网络请求的工作本质上是 OkHttp...完成,而 Retrofit 仅负责 网络请求接口的封装。...Retrofit的使用 先简单介绍一个网络请求的例子,注解之类的放在后面去说 (1) 添加Retrofit库的依赖 implementation "io.reactivex.rxjava2:rxjava...实例 Retrofit retrofit = new Retrofit.Builder() .baseUrl(Constant.IP)...实例 上传文件+字段的时候 必须变为RequestBody 参数 方可才能上传 Retrofit retrofit2 = new Retrofit.Builder() .
创建Retrofit并生成API的实现 ? 调用API方法,生成Call ? 其中主要涉及的方法如下图所示: ?...Retrofit的创建 retrofit实例的创建,典型的builder模式,在它的Builder方法里有两个地方需要关注下,一个是Platform.get()方法。...retrofit.create 好玩的地方开始了,因为篇幅限制仅保留核心代码。 ?...ServiceMethod的创建于Retrofit类似,都是builder模式。...Retrofit的代码虽然相对是比较少,也比较容易理解的,不过却是很好的架构实例。
1.使用方法 1、构造retrofit实例(建造者模式,类似于Dialog) Retrofit retrofit = new Retrofit.Builder()...("https://api.github.com/") .build(); //https://api.github.com/repos/square/retrofit.../contributors GitHubApi repo = retrofit.create(GitHubApi.class); 2、创建同步或异步HTTP请求到远程网络服务器 Call... call = repo.contributorsBySimpleGetCall("square", "retrofit"); 3、网络请求 call.enqueue(new...public void onFailure(Call call, Throwable t) { } }); 2.源码解析 看看retrofit.create
前面说了RxJava 与Retrofit的基本用法,但是没用做优化的处理.本篇先做一个优化处理,然后再结合前面的MVP 设计模式,把这些知识贯穿到一个Demo 之中,方便大家理解....T> demo); public abstract void onFailure(Throwable e, String errorMsg); } 请求网络数据 Api api = retrofit.create...mApiUrl; } private RetrofitUtils(){ } public Api getRetrofit() { // 初始化Retrofit...apiUrl = initRetrofit(initOkHttp()) .create(Api.class); return apiUrl; } /** * 初始化Retrofit...*/ @NonNull private Retrofit initRetrofit(OkHttpClient client) { return new Retrofit.Builder
retrofit的初始化 private static Retrofit RETROFIT; private static Retrofit getRetrofit() { if (RETROFIT...== null) { RETROFIT = new Retrofit.Builder() .client(getHttpClient())...retrofit, Method method) { this.retrofit = retrofit; this.method = method; this.methodAnnotations...> get(Type returnType, Annotation[] annotations, Retrofit retrofit) { Classretrofit) { TypeAdapter<?
在使用retrofit之前,你需要导入retrofit gsonconverter这些库。详情可以查看相关资料。...https://github.com/square/retrofit ,现在出到最新的版本是2.4.0....在retrofit之前都是用okhttp直接请求,比如 val client = OkHttpClient() val body=FormBody.Builder()...{ } }) 到了retrofit ,更加简单和gson rxjava 配合使用。...GET请求 在retrofit使用过程中,你需要定义一个接口类,比如: interface MainService { @GET("/v1/home") fun getMain(@Query
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来搭配接口服务使用。...注意 base的网络地址 baseUrl不能为空,且强制要求必需以 / 斜杠结尾 private Retrofit mRetrofit; private void initHttpBase(){
Retrofit中的动态代理 在Retrofit中,使用动态代理来对接口中的注释进行解析,解析后完成OkHttp的参数构建。...Retrofit的基本使用 首先来看一下使用Retrofit请求Github的的代码 通过interface以及注释定义了该为Get请求,并且路径为/ public interface GitHubService...对象 String url = "https://api.github.com/"; Retrofit retrofit = new Retrofit.Builder() .baseUrl...Retrofit.Builder test =new Retrofit.Builder().addCallAdapterFactory(new CallAdapter.Factory() {...> get(Type returnType, Annotation[] annotations, Retrofit retrofit) { return new CallAdapter
使用Retrofit配合GsonConverter,我们能很好地将网络响应内容转换成对应的对象。比如像下面这样。...Retrofit网络接口方法 1 2 3 4 5 6 7 public interface DroidNetwork { @GET("/content/test.json") CallRetrofit.Builder() .baseUrl("https://asset.droidyue.com/") .addConverterFactory...(GsonConverterFactory.create()) .build() val droidNetwork = retrofit.create(DroidNetwork....OkHttpCall.parseResponse(OkHttpCall.java:223) W System.err: at retrofit2.OkHttpCall$1.onResponse
官网地址(http://square.github.io/retrofit/) 网络基本请求方法(官网) Introduction Retrofit turns your HTTP API into a...Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.github.com/") .build(); GitHubService...的builder构建出一个retrofit对象; 3、使用retrofit.create获取该网络接口请求实例; 4、由请求接口实例返回一个Call对象; 5、进行网络(同步、异步)请求 下面分析上述的几点...Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.github.com/") .build(); Builder...> responseBodyConverter(Type type, Annotation[] annotations, Retrofit retrofit) { if (type
1.动态代理 http://blog.csdn.net/lxj1137800599/article/details/76022141 2.常见注解说明 ...
领取专属 10元无门槛券
手把手带您无忧上云