Kotlin Retrofit 网络请求

一、添加依赖:

    //Retrofit 网络请求
    implementation("com.squareup.retrofit2:retrofit:2.3.0")
    implementation("com.squareup.retrofit2:converter-gson:2.3.0")//json转换

二、创建单例类:

package com.example.buju.http

import okhttp3.OkHttpClient
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import java.util.concurrent.TimeUnit

/**
 * retrofit网络请求
 * */
object HiRetrofit {
    val client = OkHttpClient.Builder()// builder构造者设计模式
        .connectTimeout(10, TimeUnit.SECONDS)//连接超时时间
        .readTimeout(10, TimeUnit.SECONDS)// 读取超时
        .writeTimeout(10, TimeUnit.SECONDS)// 写超时
        .addInterceptor(LoggingInterceptor())// 自定义拦截器
        .build()

    private var retrofit:Retrofit = Retrofit.Builder() // Builder构造者设计模式
        .client(client)// 借助okhttp3创建的client
        .baseUrl("baseUrl")// 网络请求前面的公共地址
        .addConverterFactory(GsonConverterFactory.create())// 数据转换适配器
        .build()

    fun <T> create(clazz: Class<T>):T{
        return retrofit.create(clazz)
    }

}

 三、创建网络请求Api:

package com.example.buju.http

import retrofit2.Call
import retrofit2.http.GET
import retrofit2.http.Query

/**
 * retrofit网络请求定义Api
 * */
interface ApiService {
    // 根据用户id查询信息
    @GET(value = "user/query")
    fun queryUser(@Query(value="userId",encoded = true) userId:String):Call<HashMap<String,String>>

}

使用:

   val apiService:ApiService = HiRetrofit.create(ApiService::class.java)
        apiService.queryUser("0001").enqueue(object:Callback<HashMap<String,String>>{
            override fun onResponse(
                call: Call<HashMap<String, String>>,
                response: Response<HashMap<String, String>>
            ) {
                Log.e("Retrofit",response.body()?.toString() ?:"不知道原因")
            }

            override fun onFailure(call: Call<HashMap<String, String>>, t: Throwable) {
               Log.e("Retrofit",t.message?:"不知道原因")
            }
        })

相关推荐

  1. okhttp网络请求工具

    2024-03-13 11:24:03       39 阅读
  2. 鸿蒙网络请求

    2024-03-13 11:24:03       22 阅读
  3. Kotlin Retrofit 网络请求

    2024-03-13 11:24:03       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-13 11:24:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-13 11:24:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-13 11:24:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-13 11:24:03       20 阅读

热门阅读

  1. Unity 地图数据生成

    2024-03-13 11:24:03       20 阅读
  2. Spring Boot- Validation

    2024-03-13 11:24:03       16 阅读
  3. LeetCode题练习与总结:搜索旋转排序数组

    2024-03-13 11:24:03       17 阅读
  4. 【leetcode热题】反转字符串中的单词

    2024-03-13 11:24:03       21 阅读
  5. 焦点调制网络

    2024-03-13 11:24:03       17 阅读
  6. 蓝桥杯历年真题省赛之 2016年 第七届 生日蜡烛

    2024-03-13 11:24:03       18 阅读
  7. Kafka吞吐量高的原因

    2024-03-13 11:24:03       16 阅读
  8. 阿里云国际修改域名绑定的DDoS高防服务器

    2024-03-13 11:24:03       19 阅读
  9. RUST 每日一省:迭代器1

    2024-03-13 11:24:03       18 阅读
  10. 【Rust日报】Ascent:在 Rust 中嵌入的逻辑编程语言

    2024-03-13 11:24:03       18 阅读
  11. Linux中一些基础命令

    2024-03-13 11:24:03       24 阅读