Android開發(fā)(Kotlin)?retrofit基本使用教程
導(dǎo)入retrofit
dependencies {
........
implementation("com.squareup.retrofit2:retrofit:3.0.0")
implementation("com.squareup.retrofit2:converter-gson:3.0.0")
}創(chuàng)建單例類
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)
}創(chuàng)建數(shù)據(jù)類
數(shù)據(jù)格式
{
"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>
}調(diào)用網(wǎng)絡(luò)接口
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())
}
})
}打印結(jié)果
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)])
使用實(shí)化來優(yōu)化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())
}
})
}其他
聲明網(wǎng)絡(luò)權(quán)限
<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>到此這篇關(guān)于Android開發(fā)(Kotlin) retrofit基本使用的文章就介紹到這了,更多相關(guān)android kotin retrofit使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android通過交互實(shí)現(xiàn)貝塞爾曲線的繪制
本篇我們將介紹簡單的交互式繪圖,通過獲取觸控位置來設(shè)定貝塞爾曲線的控制點(diǎn),從而實(shí)現(xiàn)交互式繪制曲線,感興趣的小伙伴可以了解一下2022-05-05
android獲取當(dāng)前手機(jī)號(hào)示例程序
這篇文章主要介紹了android如何獲取當(dāng)前手機(jī)號(hào)的方法,大家參考使用吧2013-11-11
Android Vibrator調(diào)節(jié)震動(dòng)代碼實(shí)例
這篇文章主要介紹了Android Vibrator調(diào)節(jié)震動(dòng)代碼實(shí)例,本文直接給出實(shí)現(xiàn)代碼,代碼中包含詳細(xì)注釋,需要的朋友可以參考下2015-05-05
Android文字匹配度算法及實(shí)際應(yīng)用示例
本文介紹了Android應(yīng)用中常用的文字匹配度算法Levenshtein Distance,并給出了實(shí)際應(yīng)用示例,通過合理選擇和應(yīng)用文字匹配度算法,可以實(shí)現(xiàn)多種功能,提升用戶體驗(yàn),增強(qiáng)應(yīng)用的實(shí)用性,需要的朋友可以參考下2024-05-05
Android中再按一次退出提醒實(shí)現(xiàn)的兩種方法
今天小編就為大家分享一篇關(guān)于Android中再按一次退出提醒實(shí)現(xiàn)的兩種方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-04-04
深入淺出RxJava+Retrofit+OkHttp網(wǎng)絡(luò)請(qǐng)求
本篇文章主要介紹了深入淺出RxJava+Retrofit+OkHttp網(wǎng)絡(luò)請(qǐng)求,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11

