
Android学习系列
Android之Room学习
Android之自定义View学习(一)
Android之自定义View学习(二)
Android之消息机制学习
Android学习之Navigation学习(一)Navigation初体验
Android学习之Retorfit2学习
Android学习之Retrofit2学习
前言
连更几天的数据结构与算法,有点肝不动了,虽然今天刚刚看了红黑树创建操作的具体情况,但是今天还是想给大家介绍一个比较火热的安卓网络请求库Retrofit2,主要还是说一下这一请求库的应用。
一、模拟请求网站
android有着诸多的网络请求架构与网络请求库,在介绍我们今天的主角Retrofit2之前,先介绍一个我们用于测试用的模拟请求网站:https://mock-api.com/app.html,它可以通过自定义GET/POST请求规则构建一个可以访问的url。
建立过程主要分为四个步骤:
- 创建自己的模拟系统,并进入模拟系统
-
创建中:

-
创建完成:

- 进入系统,定义所想要的请求规则(一般都是GET/POST)
左侧需要定义Request请求,右侧需要定义Response响应。当然注意格式一般都是json格式(Request部分也可以选择其他格式,但是表现在url上都大同小异)。

同时需要注意下大小写之分,因为这对我们后续Retrofit2的使用十分重要。
-
GET请求:

-
POST请求:

二、Retrofit2简介
Retrofit2是Square公司开源的网络请求封装库,其底层是基于OKHttp网络请求框架的实现的,当然OKHttp也是Square公司推出的罢了。搭配其他的框架(GSON格式的Response),Retrofit2使得请求变得简便,搭建变得更容易实现。
三、Retrofit2注解
下面列三个表格进行常用Retrofit2注解说明。一类是请求格式列表,一类是标记,还有一类是网络请求参数
请求格式列表:
| 注解请求形式 | 说明 |
|---|---|
| @GET | get请求 |
| @POST | post请求 |
| @HEAD | head请求 |
| @PUT | put请求 |
| @DELETE | delete请求 |
| @PATCH | patch请求,对put请求进行 |
| @OPTION | option请求 |
| @HTTP | http/https请求,需要指明三个属性method,path,hasBody |
一般最常见的就是使用@GET和@POST注解。
而在GET请求,我们知晓,添加的参数(Query_String)均直接显示在url中。
标记
标记一般都是Post请求的其他几种数据传方式。
| 参数形式 | 说明 |
|---|---|
| @FormUrlEncoded | Post请求上传表单数据 |
| @Multipart | Post请求上传文件数据 |
| @Streaming | Post请求返回数据流形式数据,适用于大数据场景 |
网络请求参数列表:
-
@GET
| 网络请求参数形式 | 说明 |
| :-------: | :–: |
| @Query | 指定url后接单一参数 |
| @QueryMap | 指定url后接多个参数 | -
@POST
| 网络请求参数形式 | 说明 |
| :---------------: | :-----------------------------------------------------: |
| @Body | 用于post请求传输json格式数据 |
| @Field、@FieldMap | 与@FormUrlEncoded标记合用,用于post请求传输表单数据使用 |
| @Part、@PartMap | 与@Multipart标记合用,用于post传输文件使用 | -
通用
| 网络请求参数形式 | 说明 |
| :---------------: | :----------------------------------------: |
| @Header、@Headers | 添加请求头(header为添加不固定值的header) |
| @Path | 路径替换参数 |
| @URL | 设置URL |
四、Retrofit2使用
在分别给出上述网络请求方式的规则(GET and POST为例)之前,我们先来理清一下发起请求之前所需要做的准备工作。
Step 1 添加依赖库
//build.gradle.kt
dependencies {
implementation("com.squareup.retrofit2:retrofit:2.9.0")
implementation("com.squareup.retrofit2:converter-gson:2.9.0")
testImplementation(kotlin("test-junit"))
}
这里添加了一个converter-gson用于将response的body进行数据格式转换。
Step 2 开始准备retrofit——定义接口,在其中声明请求函数以及返回 回调
interface WebService {
@GET("api/webInfo")
fun getWebInfo(): Call<WebInfo>
@GET("api/userInfo")
fun getUserInfo(@Query("id") id :Int): Call<UserInfo>
@GET("api/article/{bookName}/page/{page}")
fun getContentOfBook(@Path("bookName") bookName:String, @Path("page") page:Int) :Call<ResponseBody>
@POST("api/login")
fun

本文介绍了如何使用Retrofit2进行Android网络请求,包括添加依赖、接口定义、参数标记和请求示例,适合快速上手网络请求库的开发者。
最低0.47元/天 解锁文章
1772

被折叠的 条评论
为什么被折叠?



