最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android開發(fā)(Kotlin)?retrofit基本使用教程

 更新時(shí)間:2025年11月17日 10:28:49   作者:來來走走  
本文介紹了在Android開發(fā)中使用Kotlin和Retrofit進(jìn)行網(wǎng)絡(luò)請(qǐng)求的基本步驟,包括導(dǎo)入Retrofit、創(chuàng)建單例類、定義數(shù)據(jù)類和接口、配置網(wǎng)絡(luò)權(quán)限以及進(jìn)行網(wǎng)絡(luò)請(qǐng)求并打印結(jié)果,感興趣的朋友跟隨小編一起看看吧

導(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)文章

最新評(píng)論

永修县| 香格里拉县| 武汉市| 永胜县| 中江县| 光山县| 韩城市| 磴口县| 梨树县| 安国市| 溧水县| 宣威市| 宜章县| 宜兰县| 历史| 葵青区| 原平市| 祁连县| 平湖市| 九龙城区| 石首市| 鸡东县| 鄂州市| 红桥区| 宜兴市| 西充县| 西峡县| 邻水| 永昌县| 宜都市| 卓尼县| 甘洛县| 盐池县| 额尔古纳市| 葫芦岛市| 郓城县| 乐山市| 托克逊县| 高青县| 曲松县| 措勤县|