android - 使用Kotlin进行Retrofit调用void

时间:2017-12-04 18:00:07

标签: kotlin retrofit

我遇到了Retrofit 2的问题。我想使用Call<Void>进行调用而不处理响应主体,但它不能与Kotlin一起使用。

我需要使用什么代替Void

1 个答案:

答案 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方法被称为。