android - 使用Kotlin进行Retrofit调用void

LMa*_*ker 2 kotlin retrofit

我遇到了Retrofit 2的问题.我想在Call<Void>不处理响应体的情况下使用它来进行调用,但它不能与Kotlin一起使用.

我需要用什么而不是Void

mac*_*usz 11

我想使用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
            }
        })
Run Code Online (Sandbox Code Playgroud)

我在Android示例中尝试了上述代码段,使用Kotlin 1.1.61和Retrofit 2.3.0并且它正常工作 - 执行调用并根据网络可用性和整体设置Callback调用正确的方法.