蝶舞风翎 發表於 2025-11-17 10:28:49

Android开发(Kotlin) retrofit基本使用教程

<p>导入retrofit</p>
<div class="jb51code"><pre class="brush:plain;">dependencies {
        ........
    implementation("com.squareup.retrofit2:retrofit:3.0.0")
    implementation("com.squareup.retrofit2:converter-gson:3.0.0")
}</pre></div>
<p>创建单例类</p>
<div class="jb51code"><pre class="brush:java;">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 &lt;T&gt; create(serviceClass: Class&lt;T&gt;): T = retrofit.create(serviceClass)
}</pre></div>
<p>创建数据类<br />数据格式</p>
<div class="jb51code"><pre class="brush:json;">{
    "data": [
      {
            "random": "3",
            "def": "中止,停顿;归属待定,暂搁",
            "word": "abeyance"
      }
    ]
}</pre></div>
<div class="jb51code"><pre class="brush:java;">data classWordListBean(val data: List&lt;WordBean&gt;)
data class WordBean(val random: String, val def: String, val word: String)</pre></div>
<p>配置接口</p>
<div class="jb51code"><pre class="brush:java;">interface AppService {
    @GET("/flutter")
    fun getData(): Call&lt;WordListBean&gt;
}</pre></div>
<p>调用网络接口</p>
<div class="jb51code"><pre class="brush:java;">      binding.clickButC.setOnClickListener {
            val appService = ServiceCreator.create(AppService::class.java)
            appService.getData().enqueue(object : Callback&lt;WordListBean&gt;{
                override fun onResponse(call: Call&lt;WordListBean?&gt;, response: Response&lt;WordListBean?&gt;) {
                  Log.d("ClickActivity",response.body().toString())
                }
                override fun onFailure(call: Call&lt;WordListBean?&gt;, t: Throwable) {
                  Log.d("ClickActivity",t.toString())
                }
            })
      }</pre></div>
<p>打印结果</p>
<blockquote><p>2025-11-15 01:07:28.592 23340-23340 ClickActivity &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />com.bz.yh.xd.testkotlin &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />D &nbsp;WordListBean(data=)</p></blockquote>
<p>使用实化来优化ServiceCreator</p>
<div class="jb51code"><pre class="brush:java;">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 &lt;reified T&gt; create(): T = create(T::class.java)
}</pre></div>
<div class="jb51code"><pre class="brush:java;">      binding.clickButC.setOnClickListener {
            val appService = ServiceCreator.create&lt;AppService&gt;()
            appService.getData().enqueue(object : Callback&lt;WordListBean&gt;{
                override fun onResponse(call: Call&lt;WordListBean?&gt;, response: Response&lt;WordListBean?&gt;) {
                  Log.d("ClickActivity",response.body().toString())
                }
                override fun onFailure(call: Call&lt;WordListBean?&gt;, t: Throwable) {
                  Log.d("ClickActivity",t.toString())
                }
            })
      }</pre></div>
<p>其他<br />声明网络权限</p>
<div class="jb51code"><pre class="brush:java;">    &lt;uses-permission android:name="android.permission.INTERNET" /&gt;</pre></div>
<p>配置networkSecurityConfig,使用http</p>
<div class="jb51code"><pre class="brush:java;">&lt;application
                .....
      android:networkSecurityConfig="@xml/network_security_config"&gt;</pre></div>
<p>network_security_config.xml</p>
<div class="jb51code"><pre class="brush:xml;">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;network-security-config&gt;
    &lt;base-config cleartextTrafficPermitted="true"/&gt;
&lt;/network-security-config&gt;</pre></div>
<p>到此这篇关于Android开发(Kotlin) retrofit基本使用的文章就介绍到这了,更多相关android kotin retrofit使用内容请搜索琼殿技术社区以前的文章或继续浏览下面的相关文章希望大家以后多多支持琼殿技术社区!</p>
                           
                            <div class="art_xg">
                              <b>您可能感兴趣的文章:</b><ul><li>Android开发Kotlin语言协程的依赖及使用示例</li><li>Kotlin-Android之Activity使用详解</li><li>Android结合kotlin使用coroutine的方法实例</li><li>在Android中如何使用DataBinding详解(Kotlin)</li><li>Android在Kotlin中更好地使用LitePal</li><li>Android Kotlin环境使用ButterKnife的方法</li><li>使用Kotlin开发Android应用教程</li><li>Android Kotlin的使用及简单实例</li></ul>
                            </div>

                        </div>
                        <!--endmain-->
頁: [1]
查看完整版本: Android开发(Kotlin) retrofit基本使用教程