我遇到了Retrofit 2的问题。我想使用Call<Void>
进行调用而不处理响应主体,但它不能与Kotlin一起使用。
我需要使用什么代替Void
?
答案 0 :(得分:9)
我想使用Call来打电话而不处理响应体,但它不适用于Kotlin
事实并非如此,确实有效。
您的设置不一定有问题,或者如果您没有获得预期的结果,您的测试用例会定义不正确。
一个非常简单的例子:
interface GitHub {
@GET("/users/{username}/repos")
fun getUserRepos(@Path("username") username: String): Call<Void>
}
val github = Retrofit.Builder()
.baseUrl("https://api.github.com/")
.build()
.create(GitHub::class.java)
github.getUserRepos("maciekjanusz")
.enqueue(object : Callback<Void> {
override fun onFailure(call: Call<Void>?, t: Throwable?) {
// failure
}
override fun onResponse(call: Call<Void>?, response: Response<Void>?) {
// success
}
})
我在Android示例中使用Kotlin 1.1.61和Retrofit 2.3.0尝试了上述代码段,它运行正常 - 调用已执行,并且根据网络可用性和整体设置,正确Callback
方法被称为。