【问题标题】:android - Retrofit call void using Kotlinandroid - 使用 Kotlin 改造调用无效
【发布时间】:2017-12-04 18:00:06
【问题描述】:

我遇到了 Retrofit 2 的问题。我想使用 Call<Void> 在不处理响应正文的情况下拨打电话,但它不适用于 Kotlin。

我需要使用什么来代替Void

【问题讨论】:

  • 你试过UnitNothing吗?

标签: kotlin retrofit


【解决方案1】:

我想在不处理响应正文的情况下使用 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方法被调用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-08
    • 1970-01-01
    • 2020-07-27
    • 2018-08-31
    • 1970-01-01
    • 2022-11-24
    • 2019-10-05
    相关资源
    最近更新 更多