美文网首页安卓开发
安卓开发入门教程-网络请求

安卓开发入门教程-网络请求

作者: 蓝不蓝编程 | 来源:发表于2021-10-29 08:46 被阅读0次

简要介绍

本文介绍安卓开发中常见的网络请求方式:Retrofit+Coroutines。
Retrofit是当前应用非常广泛的网络请求框架,而Coroutines则是Kotlin中用于执行异步任务的框架,比RxJava还要方便易用,本文将展示一个采用Coroutines+Retrofit的网络请求demo. 若想了解RxJava+Retrofit,可参考《RxJava+Retrofit实现网络请求

集成步骤

  1. app工程的build.gradle中添加依赖
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.1.1"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.1.1"
    implementation "com.squareup.retrofit2:retrofit:2.6.0"
    implementation "com.squareup.retrofit2:converter-gson:2.6.0"
    implementation "com.squareup.okhttp3:logging-interceptor:3.11.0"
    implementation "com.squareup.okhttp3:okhttp:3.14.2"
  1. 在AndroidManifest.xml中添加权限
<uses-permission android:name="android.permission.INTERNET"/>
  1. 添加数据类Task
    data class Task(var id: Int, var name: String?)
  2. 添加网络请求类NetworkService
interface NetworkService {
    @GET("cxyzy1/coroutineRetrofitDemo/raw/master/data.json")
    suspend fun query(): Task
}
  1. activity中调用
class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        queryData()
    }

    private fun queryData() {
        val okHttpClient = OkHttpClient.Builder()
                .apply {
                    addInterceptor(HttpLoggingInterceptor().apply { level = HttpLoggingInterceptor.Level.BODY })
                }.build()
        val retrofit = Retrofit.Builder()
                .client(okHttpClient)
                .baseUrl("https://gitee.com/")
                .addConverterFactory(GsonConverterFactory.create())
                .build()

        val networkService = retrofit.create(NetworkService::class.java)
        GlobalScope.launch(Dispatchers.Main) {
            val result = withContext(Dispatchers.IO) { networkService.query() }
            contentTv.text = result.toString()
        }
    }
}

网络请求结果截图

Demo源代码

https://gitee.com/hspbc/coroutineRetrofitDemo/tree/master/app

关于我

厦门大学计算机专业 | 前华为工程师
分享编程技术,没啥深度,但看得懂,适合初学者。
Java | 安卓 | 前端 | 小程序 | 鸿蒙
公众号:花生皮编程

相关文章

  • 安卓开发入门教程-网络请求

    简要介绍 本文介绍安卓开发中常见的网络请求方式:Retrofit+Coroutines。Retrofit是当前应用...

  • 安卓自定义View-画圆

    效果图 代码 安卓开发入门教程系列汇总 安卓发展历程及前景 安卓发展历程 安卓开发前景展望 初探安卓 安装开发工...

  • 安卓动画样例-圆环变多变少

    效果图 代码 安卓开发入门教程系列汇总 安卓发展历程及前景 安卓发展历程 安卓开发前景展望 初探安卓 安装开发工...

  • 安卓网络请求最佳实践

    安卓网络请求最佳实践 在安卓开发中,经过多年的发展,网络请求的架构基本定型,通常是 OkHttp + Retrof...

  • 安卓动画样例-放大缩小

    效果图 实现代码 安卓开发入门教程系列汇总 安卓发展历程及前景 安卓发展历程 安卓开发前景展望 初探安卓 安装开...

  • Okhttp 请求添加公共参数、公共Headers

    安卓开发中,http 网络请求的框架有很多,有 HttpUrlConnection、 Volley 、 Okhtt...

  • 无标题文章

    安卓开发福利大放送,基础小白到行业精英的秘密 安卓开发入门教程有哪些?安卓手机全球市场份额已经接近85%,成为了无...

  • flutter-DioError (DioError [DioE

    背景: 在Windows开发安卓版, 网络请求是正常的, 项目放到Mac里, 网络请求就报上面的错, 用的第三方库...

  • 3.Flutter开发玩安卓app-网络请求及全局状态管理

    网络请求开始 前言网络请求,我们得先知道网络请求的地址对吧,先来我们玩安卓看一下玩安卓开放api问题这里讲一下我自...

  • Android中HttpURLConnection

    大部分安卓项目开发中,网络请求都是用封装好的网络框架,如:okhttp、nohttp、volley等。导致基础的H...

网友评论

    本文标题:安卓开发入门教程-网络请求

    本文链接:https://www.haomeiwen.com/subject/sbfialtx.html