我想在我创建的界面内的单个Retrofit调用中添加默认主体。
假设我有一个Retrofit界面,例如:
import retrofit2.Call
import retrofit2.http.*
interface ExampleAPI {
@POST
fun makeRequest(): Call<SomeResponse>
}
我想使用以下字段向请求添加默认正文:
param_one: j32n4n4jt
param_two: k23n45k43t
我知道我可以包装所生成的函数并通过以下方式注入主体
import retrofit2.Call
import retrofit2.http.*
interface ExampleAPI {
@POST
fun makeRequest(@Body body: Map<String, String>): Call<SomeResponse>
}
或者我可以在拦截器中进行if
检查。
但是,可以直接在界面中实现吗?如果可以,如何实现?
答案 0 :(得分:0)
尝试一下
通用请求:
open class CommonRequest(
@Ignore
@SerializedName("param_one") val param_one: String = "j32n4n4jt",
@Ignore
@SerializedName("param_two") val param_two: String = "j32n4n4jt"
)
实际请求:
data class Request(
@SerializedName("name") val name: String = "Andrew",
) : CommonRequest()
用法:
interface ExampleAPI {
@POST
fun makeRequest(@Body request: Request): Call<SomeResponse>
}