Android中使用Kotlin发起Retrofit的void请求

4

我遇到了Retrofit 2的问题。我想使用Call<Void>来进行调用,而不需要处理响应体,但是在Kotlin中无法使用。

我需要使用什么代替Void


你尝试过使用 UnitNothing 吗? - azizbekian
1个回答

12
我想使用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方法被调用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接