Retrofit入门学习
一、Retrofit是什么?
Retrofit是美国电子支付系统软件公司Square的 Android | Java 开源框架之一,Retrofit说白了就是Http安全性的网络请求适配器,它是通过将远程API转化为声明式、类型安全的接口来简化HTTP通信.然后使用Okhttp发送请求,实现网络数据交互的框架。以下在Kotlin语言开发环境条件下对Retrofit2展开使用和学习。
二、使用方法
1.库依赖
在app build.gradle dependencies中添加以下库依赖:
dependencies {
//Retrofit
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.okhttp3:logging-interceptor:4.9.1'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.7.2'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
}
2.定义接口常量
这个类旨在管理API接口,定义了API的Host和相关字段信息:
object Api {
const val BASE_URL = "https://api.apiopen.top/"
const val TODAYVIDEO_URL = "todayVideo"
}
3. 定义一个接口声明类
这个接口中使用了 @POST注解,传入API字段参数,这里也可以使用@GET注解,关于二者的区别我这里就不多赘述了。这里另外说一下,如果方法内有参数传入则需要额外加入@FormUrlEncoded注解,我这里没有参数,所以@FormUrlEncoded注解可以去掉:
interface VideoApiService {
@POST(Api.TODAYVIDEO_URL)
fun showTodayVideoData(): Call<TodayVideoBean>
}
4.创建data class数据模型
可在Androidstudio或者Intellij IDEA的plugins中下载JSON To Kotlin Class插件,使用此插件将Json化的接口格式化并其转换为Kotlin的data class 数据模型类(相当于Java中的JavaBean):
由于我这个数据模型类中涉及的对象太多了,这里我自己就贴出小部分展示出来吧:
data class VideoDemoBean(
val code: Int,
val message: String,
val result: List<Result>
)