私は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>
改修工法申告書に使用します。