前言
Android进行网络请求,一般是通过Retrofit配合RxJava来实现。需要注意的是,在项目中,是不可能直接在每一个请求的地方直接裸着用框架,而是一定在自己的项目中对框架封装了一层,实际使用的是封装的这一层。
本篇文章就来介绍一种封装方案,在项目中可以使用。此方案肯定有不足的地方,还请批评指正。
用到的知识
Kotlin、Retrofit,RxJava,OkHttp
步骤介绍
1.api介绍
在这里使用鸿洋大神的开放api,链接点这里。只使用登录api即可,其他的api都是一样的方式。
url:https://www.wanandroid.com/user/login
方法:POST
参数:username,password
这里推荐一款很好用的接口测试工具Apipost,我这边测试一下登录的接口
它返回的response由三部分组成,分别是data,errorCode,errorMsg。我把结果粘贴过来
{
"data": {
"admin": false,
"chapterTops": [],
"coinCount": 10,
"collectIds": [],
"email": "",
"icon": "",
"id": 130077,
"nickname": "LJH111",
"password": "",
"publicName": "LJH111",
"token": "",
"type": 0,
"username": "LJH111"
},
"errorCode": 0,
"errorMsg": ""
}
2.创建项目
创建一个kotlin项目,完成必要的准备
①依赖导入
在app模块的gradle文件中导入retrofit和rxjava的依赖
//导入retrofit
implementation 'com.squareup.retrofit2:retrofit:2.3.0'
implementation 'com.squareup.retrofit2:converter-gson:2.3.0'//ConverterFactory的Gson依赖包
implementation 'com.squareup.retrofit2:converter-scalars:2.3.0'//ConverterFactory的String依赖包
implementation("com.squareup.okhttp3:okhttp:4.9.1")
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
//导入rxjava
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile "io.reactivex.rxjava2:rxjava:2.0.8"
②开启网络权限
(1)首先新建一个xml文件,如图
内容是
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted