Retrofit2学习记录
来源:互联网 发布:搜索引擎客户数据分析 编辑:程序博客网 时间:2024/05/18 19:44
Retrofit在很早以前推出来了,如今Retrofit2也已经广泛使用。
由于我没有Retrofit的基础,所以就直接从Retrofit2开始学习。
在学习的时候,我查看了很多博客,包括其官网,但是在学起来的总是找不到感觉,后来终于找到了一篇个人认为不错的文章:
你真的会用Retrofit2吗?Retrofit2完全教程
这篇文章配有示例源码,讲得很细致。
不过由于我在网络编程这一方面比较薄弱,所以在学习的时候,不得不对其中一些内容进行另外的补充(与前面的序号不是对应的):
1、有关RequestBody、Call等的知识点
2、HTTP请求方法:GET、HEAD、POST、PUT、DELETE、PATCH、OPTIONS、TRACE的作用
3、因为RequestBody的数据格式都要指定Content-Type,常见的有三种:
application/x-www-form-urlencoded 数据是个普通表单multipart/form-data 数据里有文件application/json 数据是个json
(FormBody继承了RequestBody,它已经指定了数据类型为application/x-www-form-urlencoded)
所以在Example03.java
中,有使用到MediaType.parse();
方法,这是okhttp3中的方法,其作用如下:
Returns a media type for string, or null if string is not a well-formed media
大概意思就是根据传入字符串返回指定的媒体类型,但是如果传入的字符串是不是规范的,则返回null。
其中text/plain
为Content-Type(信息类型)的缺省值,它指明了主要类型(primary type)和次要类型(subtype)两个部分,两者之间用”/”分割。主要类型有9种,分别是application、audio、example、image、message、model、multipart、text、video。
每一种主要类型下面又有许多种次要类型,常见的有:
text/plain:纯文本,文件扩展名.txttext/html:HTML文本,文件扩展名.htm和.htmlimage/jpeg:jpeg格式的图片,文件扩展名.jpgimage/gif:GIF格式的图片,文件扩展名.gifaudio/x-wave:WAVE格式的音频,文件扩展名.wavaudio/mpeg:MP3格式的音频,文件扩展名.mp3video/mpeg:MPEG格式的视频,文件扩展名.mpgapplication/zip:PK-ZIP格式的压缩文件,文件扩展名.zip
(详细的Content-Type列表可以自行谷歌)
附:OkHttp3的基本用法
4、有关Gson:你真的会用Gson吗?Gson使用指南(一)
5、Converter是为了将Call<F>
转换为 Call<T>
的,而CallAdapter是为了将Call<R>
转换为T
,如在你真的会用Retrofit2吗?Retrofit2完全教程中的Example08中演示的RxJavaCallAdapter就是为了将Call<Result<List<Blog>>>
(R
代表Result<List<Blog>>
)转换为Observable<Result<List<Blog>>>
(即T
)
(由于自定义Converter和CallAdapter部分在看博客时难以理解,所以我就自己模仿着自己撸了一遍(Retrofit2学习番外——自定义Converter与CallAdapter),欢迎指正)
- Retrofit2学习记录
- 学习 Retrofit2
- Retrofit2.0实践记录
- Retrofit2 使用记录
- Retrofit2的学习笔记
- Retrofit2.1.0 学习笔记
- Retrofit2.0学习
- retrofit2学习笔记
- Retrofit2学习项目_1
- Retrofit2学习项目_2
- Retrofit2学习笔记-1
- retrofit2.3.0 学习笔记
- Retrofit2.0入门学习
- Retrofit2.0源码流程备忘记录
- Android Retrofit2.0 学习笔记
- Retrofit2 学习笔记(一)
- Retrofit2 学习笔记(二)
- 小白学习 Retrofit2 由浅入深
- 堆排序
- 2.Calling Extraterrestrial Intelligence Again
- L2-002. 链表去重
- Swift: ImplicitlyUnwrappedOptional,Optional
- Pandas入门(上)
- Retrofit2学习记录
- 如何阅读文献(三)
- StringBuffer和StringBuilder
- 随记1——FramLayout先放置Button,再放置TextView,Button会覆盖TextView
- leetcode【第三周】:输出圆括号
- GitHub使用教程
- 超越spark性能300倍的性能测试
- Maximum Subarray
- 深入理解pthread_cond_wait、pthread_cond_signal