1.Retrofit

Retrofit是基于OkHttp封装的网络请求框架,网络请求的工作本质上是OkHttp完成的,而Retrofit仅负责网络请求接口的封装。

OkHttp的缺点:

①配置网络请求非常繁琐,尤其是配置复杂网络请求body、请求头、参数的时候。

②获取结果后需要用户手动解析ResponseBody,难以复用。

③无法自动进行线程切换。

④如果存在嵌套网络请求,就会陷入“回调地狱”。

Retrofit封装OkHttp主要优化了以下几点:

①build模式创建网络请求基本配置。

②用注解类组合HTTP网络请求。

③提供Gson解析返回的json数据。

④Executor完成线程切换。

Retrofit请求实现的核心在于注解、动态代理和反射。通过对接口层的封装,将请求参数、header、url这些网络请求信息封装,然后交给OkHttp完成实际的请求操作。在服务端返回数据后,OkHttp将原始的结果交给Retrofit,然后Retrofit根据不同的场景进行不同的数据解析方式。

使用Retrofit,开发者不用关注网络通信的细节,只需要在接口文件中声明一系列方法和返回值,然后通过注解的方式指定该方法对应哪个服务器接口,以及需要提供哪些参数。当在程序中调用该方法时,Retrofit会自动向对应的服务器接口发起请求,并将响应的数据解析成返回值声明的类型。这样可以用更加面向对象的思维来进行网络操作。

2.Retrofit用法

①添加依赖

implementation 'com.squareup.retrofit2:retrofit:2.3.0'

implementation 'com.squareup.retrofit2:conve

Android Retrofit★相关推荐

  1. Android Retrofit+RxJava 优雅的处理服务器返回异常、错误

    Android Retrofit+RxJava 优雅的处理服务器返回异常.错误 参考文章: (1)Android Retrofit+RxJava 优雅的处理服务器返回异常.错误 (2)https:// ...

  2. Android Retrofit @Streaming 注解失效

    Android Retrofit @Streaming 注解失效 问题特征: 即使加了@Streaming方法也不能达到逐步加载大文件数据的效果,产生的效果为下载会有长时间的卡顿,卡顿后,会在极端的时 ...

  3. Android Retrofit 2.0文件上传

    Android Retrofit 实现(图文上传)文字(参数)和多张图片一起上传 使用Retrofit进行文件上传,肯定离不开Part & PartMap. public interface ...

  4. Android Retrofit下载文件进度

    In this tutorial, we'll create an android application which downloads a file from the URL using Retr ...

  5. Android Retrofit 2.0(三)从源码分析原理

    Retrofit·特点 性能最好,处理最快 使用REST API时非常方便: 传输层默认就使用OkHttp: 支持NIO: 拥有出色的API文档和社区支持 速度上比volley更快: 如果你的应用程序 ...

  6. android retrofit 从无知到入门

    android retrofit 从无知到入门 前言 一.初识retrofit 1.retrofit是什么? 2.一些配置和数据准备 3.快速上手retrofit a.接口 b.实现 c.execut ...

  7. android retrofit 2.0公共参数,Android Retrofit 2.0 使用-补充篇

    之前分享的Android Retrofit 2.0 使用,属于基本的使用,实际开发还远远不够,因此对其补充,主要在Retrofit配置和接口参数. Retrofit配置 添加依赖 app/build. ...

  8. Android Retrofit实现原理分析

    retrofit有几个关键的地方. 1.用户自定义的接口和接口方法.(由动态代理创建对象.) 2.converter转换器.(把response转换为一个具体的对象) 3.注解的使用. 让我们跟随Ap ...

  9. android get请求最长字符串,android – Retrofit @GET – 如何显示请求字符串?

    我正在使用一个使用Retrofit创建一个休息的客户端的 Android应用程序.为了调试网络调用,我想显示或转储实际被调用的url.有没有办法做到这一点?我已经在下面列出了一些代码,显示了应用程序当 ...

  10. Android --- Retrofit 上传/下载文件扩展实现进度的监听

    本文使用okhttp作为client来做,其实说白了跟用okhttp做下载上传进度监听几乎一样,参考了这篇文章:Android OkHttp文件上传与下载的进度监听扩展 1. 首先我们写两个接口用来下 ...

最新文章

  1. 拼多多,一面,i++ 是线程安全的吗?一脸蒙逼
  2. 一秒回到P图前:Adobe发布“反向PS”利器,知道你修过哪里,还帮你修回去
  3. 【JVM调优工具篇】使用MAT工具分析dump文件(查看GC Roots)
  4. Android 优化电池使用时间——确定和检测网络状态
  5. io流图解 java_详细讲解JAVA中的IO流
  6. 安装NTOP网络监控工具(wheezy)
  7. 前端学习(2189):Promise的介绍和基本使用二
  8. OS + macOS Mojave 10.14.4 / sushi / ssh-keygen / ssh-copy-id
  9. transformClassesWithProfilers-transformForFullDebug
  10. SAP中Search help的使用
  11. 【机器学习-西瓜书】九、聚类:性能度量;距离计算
  12. 如何做一名了不起的开发人员?
  13. 实习成长之路:DelayQueue多线程下的延迟队列的使用
  14. interpeter用python还是pythonw_python-interpreter
  15. 信捷PLC以太网连接编程软件
  16. android 爱加密 脱壳,简单尝试脱“爱加密”官网加固的DEX壳
  17. 电脑基础知识入门:键盘上的英文,意思和功能汇总!
  18. 电脑重装系统后Win11扬声器无插座信息如何解决?
  19. 计算机上打印机删除不了怎么办,win7系统的打印机删除不掉怎么办?完美解决方法看这里!...
  20. 二十年间的失败软件和系统

热门文章

  1. selenium方法~设置为无头模式
  2. ceres_solver解PnP平差问题、Matlab数据制作
  3. 云呐|最新酒店行业固定资产管理办法,酒店实物资产管理系统
  4. 留言送书:又一机器学习入门力作
  5. 给想做亚马逊测评的你一些忠告!千万不要被骗了!
  6. java遍历树形结构
  7. 新浪微薄与腾讯微薄的第三方登录
  8. Python批量跑Hive数据到本地目录
  9. 乐2Pro_乐视X625_官方线刷包_救砖包_解账户锁
  10. Android 全局异常捕获DefaultUncaughtExceptionHandler与Cockroach