Andrroid
开发中,网络请求十分经常使用Android
网络请求库中,Retrofit
是当下最热的一个网络请求库Retrofit v2.0
的使用教程,但愿大家会喜欢。特别注意:java
OkHttp
完成,而 Retrofit 仅负责 网络请求接口的封装除了Retrofit,现在Android中主流的网络请求框架有:android
下面是简单介绍:git
一图让你了解所有的网络请求库和他们之间的区别!github
附:各个主流网络请求库的Github地址服务器
使用 Retrofit 的步骤共有7个:网络
步骤1:添加Retrofit库的依赖
步骤2:建立 接收服务器返回数据 的类
步骤3:建立 用于描述网络请求 的接口
步骤4:建立 Retrofit 实例
步骤5:建立 网络请求接口实例 并 配置网络请求参数
步骤6:发送网络请求(异步 / 同步)框架
步骤7: 处理服务器返回的数据异步
接下来,咱们一步步进行讲解。async
1. 在 Gradle
加入Retrofit
库的依赖oop
build.gradle
2. 添加 网络权限
AndroidManifest.xml
Reception.java
GetRequest_Interface.interface
下面详细介绍Retrofit 网络请求接口 的注解类型。
第一类:网络请求方法
详细说明:
a. @GET、@POST、@PUT、@DELETE、@HEAD
以上方法分别对应 HTTP中的网络请求方式
此处特地说明URL的组成:Retrofit把 网络请求的URL 分红了两部分设置:
b. @HTTP
a. @FormUrlEncoded
b. @Multipart
a. @Header & @Headers
b. @Body
Post
方式 传递 自定义数据类型 给服务器@Field
c. @Field & @FieldMap
@FormUrlEncoded
注解配合使用d. @Part & @PartMap
做用:发送 Post请求 时提交请求的表单字段
具体使用:与 @Multipart
注解配合使用
e. @Query和@QueryMap
做用:用于 @GET
方法的查询参数(Query = Url 中 ‘?’ 后面的 key-value)
具体使用:配置时只须要在接口方法中增长一个参数便可:
f. @Path
g. @Url
数据解析器 | Gradle依赖 |
---|---|
Gson | com.squareup.retrofit2:converter-gson:2.0.2 |
Jackson | com.squareup.retrofit2:converter-jackson:2.0.2 |
Simple XML | com.squareup.retrofit2:converter-simplexml:2.0.2 |
Protobuf | com.squareup.retrofit2:converter-protobuf:2.0.2 |
Moshi | com.squareup.retrofit2:converter-moshi:2.0.2 |
Wire | com.squareup.retrofit2:converter-wire:2.0.2 |
Scalars | com.squareup.retrofit2:converter-scalars:2.0.2 |
网络请求适配器 | Gradle依赖 |
---|---|
guava | com.squareup.retrofit2:adapter-guava:2.0.2 |
Java8 | com.squareup.retrofit2:adapter-java8:2.0.2 |
rxjava | com.squareup.retrofit2:adapter-rxjava:2.0.2 |
经过response
类的 body()
对返回的数据进行处理
接下来,我将用两个实例分别对 Retrofit GET方式 和 POST方式进行 网络请求 讲解。
Get
方法对 金山词霸API 发送网络请求
步骤1:添加Retrofit库的依赖
步骤2:建立 接收服务器返回数据 的类
步骤3:建立 用于描述网络请求 的接口
步骤4:建立 Retrofit 实例
步骤5:建立 网络请求接口实例 并 配置网络请求参数
步骤6:发送网络请求(采用最经常使用的异步方式)
步骤7: 处理服务器返回的数据
接下来,咱们一步步进行讲解。
1. 在 Gradle
加入Retrofit
库的依赖
build.gradle
2. 添加 网络权限
AndroidManifest.xml
Translation.java
采用 注解 描述 网络请求参数。
GetRequest_Interface.java
步骤4:建立Retrofit对象
步骤5:建立 网络请求接口 的实例
步骤6:发送网络请求
步骤7:处理返回数据
GetRequest.java
因为此处采用了 Gson 解析,因此须要在 Gradle加入依赖
build.gradle
Carson_Ho的Github:https://github.com/Carson-Ho/RetrofitDemo
Post方法
对 有道API 发送网络请求
步骤1:添加Retrofit库的依赖
步骤2:建立 接收服务器返回数据 的类
步骤3:建立 用于描述网络请求 的接口
步骤4:建立 Retrofit 实例
步骤5:建立 网络请求接口实例 并 配置网络请求参数
步骤6:发送网络请求(采用最经常使用的异步方式)
步骤7: 处理服务器返回的数据
接下来,咱们一步步进行Retrofit的使用。
1. 在 Gradle
加入Retrofit
库的依赖
build.gradle
2. 添加 网络权限
AndroidManifest.xml
Translation.java
采用 注解 描述 网络请求参数。
PostRequest_Interface.java
步骤4:建立Retrofit对象
步骤5:建立 网络请求接口 的实例
步骤6:发送网络请求
步骤7:处理返回数据
PostRequest.java
因为此处采用了 Gson 解析,因此须要在 Gradle
加入依赖
build.gradle
Carson_Ho的Github:https://github.com/Carson-Ho/RetrofitDemo
RxJava
和Prototocobuff
具体关于 RxJava
的使用这里就不展开,请期待下篇关于 Rxjava
的文章。
Retrofit 2.0
的使用Retrofit 2.0
的源码,请看我写的文章:Android:手把手带你深刻剖析 Retrofit 2.0 源码