Android使用Kotlin+Retrofit+Rxjava实现简单的网络请求

目录

Android使用Kotlin+Retrofit+Rxjava实现简单的网络请求

1.请求文章列表:

2.interface ApiServer 

3.请求结果基类

4.文章列表实体类:ArticleListBean

5.运行结果如下:


Android使用Kotlin+Retrofit+Rxjava实现简单的网络请求

kotlin在使用中也有一段时间了,这里分享一下最基本的使用Kotlin+Retrofit+Rxjava实现网络请求:这里以wanAndroidApi为例。

1.请求文章列表:

/**
 * 获取首页文章列表
 */
private fun getArtList() {
    val retrofit = Retrofit.Builder()
        .baseUrl(Constant.BASE_SERVER_URL)
        .addConverterFactory(GsonConverterFactory.create())
        .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
        .build()
    val server: ApiServer = retrofit.create(ApiServer::class.java)
    server.articleLists(1).enqueue(object : Callback<List<ArticleListBean>> {
        override fun onFailure(call: Call<List<ArticleListBean>>, t: Throwable) {
        }

        override fun onResponse(
            call: Call<List<ArticleListBean>>,
            response: Response<List<ArticleListBean>>
        ) {
            Log.d("data----", gson!!.toJson(response.body()))
        }

    })
}

2.interface ApiServer 

//首页文章列表
@GET("/article/list/{page}/json")
fun articleList(@Path("page") page:Int) : Observable<BaseResult<ArticleListBean>>

3.请求结果基类

/**
 * @作者: njb
 * @时间: 2020/12/3 15:37
 * @描述:
 */
class BaseResult <T>{
    val errorCode: String = ""
    val errorMsg: String = ""
    val success: Boolean = false
    var data: T? = null
}

4.文章列表实体类:ArticleListBean

class ArticleListBean {
    var datas: MutableList<DatasBean>? = null
    class DatasBean {
        /**
         * apkLink :
         * author : Jetictors
         * chapterId : 232
         * chapterName : 入门及知识点
         * collect : false
         * courseId : 13
         * desc :
         * envelopePic :
         * fresh : true
         * id : 3226
         * link : http://www.cnblogs.com/Jetictors/tag/Kotlin/
         * niceDate : 4小时前
         * origin :
         * projectLink :
         * publishTime : 1533522956000
         * superChapterId : 232
         * superChapterName : Kotlin
         * tags : []
         * title : Kotlin 系列文章
         * type : 0
         * userId : -1
         * visible : 1
         * zan : 0
         */

        var apkLink: String? = null         // 文章uri
        var author: String? = null          //
        var chapterId: Int = 0              //
        var chapterName: String? = null
        var isCollect: Boolean = false
        var courseId: Int = 0
        var desc: String? = null
        var envelopePic: String? = null
        var isFresh: Boolean = false
        var id: Int = 0
        var link: String? = null
        var niceDate: String? = null
        var origin: String? = null
        var projectLink: String? = null
        var publishTime: Long = 0
        var superChapterId: Int = 0
        var superChapterName: String? = null
        var title: String? = null
        var type: Int = 0
        var userId: Int = 0
        var visible: Int = 0
        var zan: Int = 0
        var tags: List<*>? = null
        var isSelect: Boolean  = false
    }
}

5.运行结果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值