web-dev-qa-db-ja.com

後付け2ボイドリターン

Retrofit 2では、httpメソッドを表すサービスメソッドはCallを返す必要があります。

Callはジェネリックであり、httpメソッドの戻りオブジェクトを表す型をとる必要があります。

例えば、

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

Deleteなどのhttpメソッドの場合、コンテンツは返されません。このような場合、Callにどのパラメーターを指定する必要がありますか?

14
Sandah Aung

タイプとしてVoid)を設定するだけです。

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

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)})
1
Bellan