Kotlin Coroutines を使用して Retrofit で 204 応答を処理するにはどうすればよいでしょうか? 質問する

Kotlin Coroutines を使用して Retrofit で 204 応答を処理するにはどうすればよいでしょうか? 質問する

私はKotlinコルーチンを備えたRetrofit 2.7.1を使用しています。

Retrofit サービスは次のように定義されています。

@PUT("/users/{userId}.json")
suspend fun updateUserProfile(
        @Path("userId") userId: String,
        @Query("display_name") displayName: String) : Void

この呼び出しはHTTP 204 コンテンツなし応答により、Retrofit でクラッシュが発生します。

kotlin.KotlinNullPointerException: Response from com.philsoft.test.api.UserApiService.updateUserProfile was null but response body type was declared as non-null
        at retrofit2.KotlinExtensions$await$2$2.onResponse(KotlinExtensions.kt:43)
        at retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:129)
        at okhttp3.RealCall$AsyncCall.execute(RealCall.java:174)
        at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:919)

コルーチンを使用して、クラッシュせずに Retrofit で 204 応答を処理するにはどうすればよいですか?

ベストアンサー1

これに従って、Response<Unit>改修工法申告書に使用します。

コンテンツの問題がない改造

おすすめ記事