Android开发(Kotlin) retrofit基本使用教程

 更新时间:2025年11月17日 10:28:49   作者:来来走走  
本文介绍了在Android开发中使用Kotlin和Retrofit进行网络请求的基本步骤,包括导入Retrofit、创建单例类、定义数据类和接口、配置网络权限以及进行网络请求并打印结果,感兴趣的朋友跟随小编一起看看吧

导入retrofit

dependencies {
  	........
    implementation("com.squareup.retrofit2:retrofit:3.0.0")
    implementation("com.squareup.retrofit2:converter-gson:3.0.0")
}

创建单例类

object ServiceCreator {
    private const val BASE_URL = "https://7a6396f8-09a1-4ade-b42a-f6db7776fb31.mock.pstmn.io"
    private val retrofit = Retrofit.Builder()
        .baseUrl(BASE_URL)
        .addConverterFactory(GsonConverterFactory.create())
        .build()
    fun <T> create(serviceClass: Class<T>): T = retrofit.create(serviceClass)
}

创建数据类
数据格式

{
    "data": [
        {
            "random": "3",
            "def": "中止,停顿;归属待定,暂搁",
            "word": "abeyance"
        }
    ]
}
data class  WordListBean(val data: List<WordBean>)
data class WordBean(val random: String, val def: String, val word: String)

配置接口

interface AppService {
    @GET("/flutter")
    fun getData(): Call<WordListBean>
}

调用网络接口

        binding.clickButC.setOnClickListener {
            val appService = ServiceCreator.create(AppService::class.java)
            appService.getData().enqueue(object : Callback<WordListBean>{
                override fun onResponse(call: Call<WordListBean?>, response: Response<WordListBean?>) {
                    Log.d("ClickActivity",response.body().toString())
                }
                override fun onFailure(call: Call<WordListBean?>, t: Throwable) {
                    Log.d("ClickActivity",t.toString())
                }
            })
        }

打印结果

2025-11-15 01:07:28.592 23340-23340 ClickActivity           
com.bz.yh.xd.testkotlin              
D  WordListBean(data=[WordBean(random=0, def=抛弃,遗弃;中止;陷入,沉湎于, word=abandon), WordBean(random=1, def=抛弃;放纵, word=abandonment), WordBean(random=2, def=缩略词,缩写形式;缩略, word=abbreviation), WordBean(random=3, def=中止,停顿;归属待定,暂搁, word=abeyance)])

使用实化来优化ServiceCreator

object ServiceCreator {
    private const val BASE_URL = "https://7a6396f8-09a1-4ade-b42a-f6db7776fb31.mock.pstmn.io"
    private val retrofit = Retrofit.Builder()
        .baseUrl(BASE_URL)
        .addConverterFactory(GsonConverterFactory.create())
        .build()
    inline fun <reified T> create(): T = create(T::class.java)
}
        binding.clickButC.setOnClickListener {
            val appService = ServiceCreator.create<AppService>()
            appService.getData().enqueue(object : Callback<WordListBean>{
                override fun onResponse(call: Call<WordListBean?>, response: Response<WordListBean?>) {
                    Log.d("ClickActivity",response.body().toString())
                }
                override fun onFailure(call: Call<WordListBean?>, t: Throwable) {
                    Log.d("ClickActivity",t.toString())
                }
            })
        }

其他
声明网络权限

    <uses-permission android:name="android.permission.INTERNET" />

配置networkSecurityConfig,使用http

<application
		.....
        android:networkSecurityConfig="@xml/network_security_config">

network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true"/>
</network-security-config>

到此这篇关于Android开发(Kotlin) retrofit基本使用的文章就介绍到这了,更多相关android kotin retrofit使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解android环境下的即时通讯

    详解android环境下的即时通讯

    这篇文章主要介绍了详解android环境下的即时通讯,具有一定的参考价值,有兴趣的可以了解一下。
    2016-12-12
  • Gradle的缓存路径修改的四种方法(小结)

    Gradle的缓存路径修改的四种方法(小结)

    这篇文章主要介绍了Gradle的缓存路径修改的四种方法(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Android通过交互实现贝塞尔曲线的绘制

    Android通过交互实现贝塞尔曲线的绘制

    本篇我们将介绍简单的交互式绘图,通过获取触控位置来设定贝塞尔曲线的控制点,从而实现交互式绘制曲线,感兴趣的小伙伴可以了解一下
    2022-05-05
  • android获取当前手机号示例程序

    android获取当前手机号示例程序

    这篇文章主要介绍了android如何获取当前手机号的方法,大家参考使用吧
    2013-11-11
  • Android Vibrator调节震动代码实例

    Android Vibrator调节震动代码实例

    这篇文章主要介绍了Android Vibrator调节震动代码实例,本文直接给出实现代码,代码中包含详细注释,需要的朋友可以参考下
    2015-05-05
  • android控件之WebView控件缩小

    android控件之WebView控件缩小

    发现这个控件挺好用,能自已控制进度条,而且这个控件的功能非常壮大,先上个简单的
    2013-05-05
  • Android文字匹配度算法及实际应用示例

    Android文字匹配度算法及实际应用示例

    本文介绍了Android应用中常用的文字匹配度算法Levenshtein Distance,并给出了实际应用示例,通过合理选择和应用文字匹配度算法,可以实现多种功能,提升用户体验,增强应用的实用性,需要的朋友可以参考下
    2024-05-05
  • Android中再按一次退出提醒实现的两种方法

    Android中再按一次退出提醒实现的两种方法

    今天小编就为大家分享一篇关于Android中再按一次退出提醒实现的两种方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • Android开发环境搭建

    Android开发环境搭建

    本文详细介绍了Android开发环境搭建,十分的详尽,图文并茂,有需要的小伙伴参考下。
    2015-01-01
  • 深入浅出RxJava+Retrofit+OkHttp网络请求

    深入浅出RxJava+Retrofit+OkHttp网络请求

    本篇文章主要介绍了深入浅出RxJava+Retrofit+OkHttp网络请求,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11

最新评论