Retrofit2学习记录

    xiaoxiao2021-03-25  70

    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:纯文本,文件扩展名.txt text/html:HTML文本,文件扩展名.htm.html image/jpeg:jpeg格式的图片,文件扩展名.jpg image/gif:GIF格式的图片,文件扩展名.gif audio/x-wave:WAVE格式的音频,文件扩展名.wav audio/mpeg:MP3格式的音频,文件扩展名.mp3 video/mpeg:MPEG格式的视频,文件扩展名.mpg application/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),欢迎指正)

    转载请注明原文地址: https://ju.6miu.com/read-33486.html

    最新回复(0)