【问题标题】:Retrofit 2 void return改造 2 无效返回
【发布时间】:2016-05-27 13:12:41
【问题描述】:

在 Retrofit 2 中,代表 http 方法的服务方法必须返回 Call

Call 是一个泛型,它必须采用表示 http 方法返回对象的类型。

例如,

@GET("/members/{id}")
Call<Member> getMember(@Path("id") Long id);

对于delete等http方法,不返回任何内容。在这种情况下,应该向Call提供什么参数?

【问题讨论】:

标签: retrofit2


【解决方案1】:

只需将 Void 设置为类型。

@DELETE("/members/{id}")
Call<Void> removeMember(@Path("id") Long id);

【讨论】:

  • 然后如何设置回调?
  • @Zapnologica .enqueue(new Callback() { public void onResponse(Call call, Response response) { ... } public void onFailure(Call调用,可抛出 t) { ... } });
【解决方案2】:

如果您使用的是 Kotlin/Retrofit/Rxjava/RxKotlin

@Headers(JwtKeyTokenWithValue)
@DELETE("/members/{id}")
fun removeMember(@Path("id") Long id): Completable

并且可以通过这种方式订阅

apiManager
       .removeMember()
       .subscribe(
           { Timber.i { "Member Removed!" } },
           { t -> Timber.e(t)})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-18
    • 2015-01-11
    • 1970-01-01
    • 1970-01-01
    • 2019-10-05
    • 1970-01-01
    • 2017-04-07
    相关资源
    最近更新 更多