【发布时间】:2017-12-04 18:00:06
【问题描述】:
我遇到了 Retrofit 2 的问题。我想使用 Call<Void> 在不处理响应正文的情况下拨打电话,但它不适用于 Kotlin。
我需要使用什么来代替Void?
【问题讨论】:
-
你试过
Unit或Nothing吗?
我遇到了 Retrofit 2 的问题。我想使用 Call<Void> 在不处理响应正文的情况下拨打电话,但它不适用于 Kotlin。
我需要使用什么来代替Void?
【问题讨论】:
Unit或Nothing吗?
我想在不处理响应正文的情况下使用 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 示例中尝试了上述 sn-ps,使用 Kotlin 1.1.61 和 Retrofit 2.3.0 并且它工作正常 - 调用被执行并且取决于网络可用性和整体设置,正确的 Callback方法被调用。
【讨论】: