平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“Android开发(Kotlin) 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 create(serviceClass: Class): T = retrofit.create(serviceClass)
} 新建数据类
数据格式
{
"data": [
{
"random": "3",
"def": "中止,停顿;归属待定,暂搁",
"word": "abeyance"
}
]
}data class WordListBean(val data: List)
data class WordBean(val random: String, val def: String, val word: String)
设置接口
interface AppService {
@GET("/flutter")
fun getData(): Call
}调用网络接口
binding.clickButC.setOnClickListener {
val appService = ServiceCreator.create(AppService::class.java)
appService.getData().enqueue(object : Callback{
override fun onResponse(call: Call, response: Response) {
Log.d("ClickActivity",response.body().toString())
}
override fun onFailure(call: Call, 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 create(): T = create(T::class.java)
} binding.clickButC.setOnClickListener {
val appService = ServiceCreator.create()
appService.getData().enqueue(object : Callback{
override fun onResponse(call: Call, response: Response) {
Log.d("ClickActivity",response.body().toString())
}
override fun onFailure(call: Call, t: Throwable) {
Log.d("ClickActivity",t.toString())
}
})
} 其他
声明网络权限
设置networkSecurityConfig,采用http
.....
android:networkSecurityConfig="@xml/network_security_config">
network_security_config.xml
到此这篇关于Android开发(Kotlin) retrofit基本采用的文章就介绍到这了,更多相关android kotin retrofit采用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多兼容脚本之家!
- Android开发Kotlin语言协程的依赖及采用示例
- Kotlin-Android之Activity采用详解
- Android结合kotlin采用coroutine的方法实例
- 在Android中如何采用DataBinding详解(Kotlin)
- Android在Kotlin中更好地采用LitePal
- Android Kotlin环境采用ButterKnife的方法
- 采用Kotlin开发Android应用教程
- Android Kotlin的采用及轻松实例
