Android開發(fā)(Kotlin)?retrofit基本使用教程
導入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)絡接口
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)])
使用實化來優(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)絡權限
<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開發(fā)(Kotlin) retrofit基本使用的文章就介紹到這了,更多相關android kotin retrofit使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Android Vibrator調(diào)節(jié)震動代碼實例
這篇文章主要介紹了Android Vibrator調(diào)節(jié)震動代碼實例,本文直接給出實現(xiàn)代碼,代碼中包含詳細注釋,需要的朋友可以參考下2015-05-05
深入淺出RxJava+Retrofit+OkHttp網(wǎng)絡請求
本篇文章主要介紹了深入淺出RxJava+Retrofit+OkHttp網(wǎng)絡請求,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11

