在Kotlin中处理两种不同的Retrofit响应可以通过以下步骤实现:
@GET
、@POST
等注解来指定请求的URL和方法,并使用Call
作为返回类型。例如:interface MyApiService {
@GET("endpoint1")
fun getResponse1(): Call<Response1>
@GET("endpoint2")
fun getResponse2(): Call<Response2>
}
data class Response1(val data: String)
data class Response2(val result: Int)
val retrofit = Retrofit.Builder()
.baseUrl("https://api.example.com/")
.addConverterFactory(GsonConverterFactory.create())
.build()
val apiService = retrofit.create(MyApiService::class.java)
enqueue
方法来异步发送请求,并在回调中处理响应。根据响应的类型,可以使用isSuccessful
方法来检查请求是否成功,并使用body
属性来获取响应的数据。例如:apiService.getResponse1().enqueue(object : Callback<Response1> {
override fun onResponse(call: Call<Response1>, response: Response<Response1>) {
if (response.isSuccessful) {
val data = response.body()?.data
// 处理Response1类型的响应
} else {
// 处理请求失败的情况
}
}
override fun onFailure(call: Call<Response1>, t: Throwable) {
// 处理请求失败的情况
}
})
apiService.getResponse2().enqueue(object : Callback<Response2> {
override fun onResponse(call: Call<Response2>, response: Response<Response2>) {
if (response.isSuccessful) {
val result = response.body()?.result
// 处理Response2类型的响应
} else {
// 处理请求失败的情况
}
}
override fun onFailure(call: Call<Response2>, t: Throwable) {
// 处理请求失败的情况
}
})
通过以上步骤,你可以在Kotlin中处理两种不同的Retrofit响应。根据具体的业务需求,你可以进一步处理响应数据,并根据需要进行错误处理、数据解析等操作。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云