Android开发(Kotlin) retrofit基本使用教程
作者:来来走走
本文介绍了在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使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
