android使用协程网络请求,Retrofit2 与 协程 结合,网络请求框架

本文介绍了如何将Retrofit2与协程整合,用于网络请求。相较于RxJava版本,协程版简化了生命周期管理,通过示例展示了GET和POST请求的实现。在使用上,只需调用launch进行网络请求,并通过协程处理结果。文章提供了Github链接供读者下载和进一步了解。

Retrofit2 与 协程 结合,网络请求框架

前言

之前撸过一个 RxJava 版本的 网络请求框架 RxJava 版本,协程版本是在RxJava版本基础上去除了 RxJava 替换成了 协程,下面介绍一下差别的地方,文末会 给出 Github 地址,有兴趣的小伙伴可以自行查看

下载

Step 1. Add the JitPack repository to your build file

Add it in your root build.gradle at the end of repositories:

allprojects {

repositories {

...

maven { url 'https://www.jitpack.io' }

}

}

复制代码

Step 2. Add the dependency

dependencies {

implementation 'com.github.JiangHaiYang01:RxHttp:0.0.2'

}

复制代码

当前最新版本

172e0759491f9829

使用

绑定生命周期

使用上几乎和 RxJava 版本相同,但是因为协程的特性,绑定生命周期的事情交给协程去处理了

Get

private fun getRequest() {

launch {

Log.i(TAG, "get 方法启动 线程 ${Thread.currentThread().name}")

val data = rxHttp

.create()

.addParameter("k", "java")

.doGet(parameter = "wxarticle/chapters/json", tClass = TestBean::class.java)

Log.i(TAG, "收到响应 $data thread ${Thread.currentThread().name}")

rxHttp.checkResult(data, {

Log.i(TAG, "success ${Thread.currentThread().name} info $it ")

log.text = it.toString()

}, {

Log.i(TAG, "error ${Thread.currentThread().name} info ${it.toString()} ")

log.text = it.toString()

})

}

}

复制代码

Post

private fun postRequest() {

launch {

val data = rxHttp

.create()

.addParameter("title", "123456")

.addParameter("author", "123456")

.addParameter("link", "123456")

.doPost("lg/collect/add/json", TestBean::class.java)

rxHttp.checkResult(data, {

log.text = it.toString()

}, {

log.text = it.toString()

})

}

}

复制代码其他使用和 RxJava版本相同

Github

点击查看Github

博客

博客

b739ec46bb5c46d9c0aa4ce35ba1ea56.png

关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

[Retrofit2 与 协程 结合,网络请求框架]http://www.zyiz.net/tech/detail-140931.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值