java.lang.IllegalArgumentException: невозможно создать конвертер @Body для класса - PullRequest
0 голосов
/ 03 марта 2019

Недавно я перешел на MoshiConverterFactory из GSONConverterFactory.Все работает нормально, кроме одного звонка.Как и другие вызовы API, здесь я также использую аннотацию @Body, но получаю эту ошибку java.lang.IllegalArgumentException: Невозможно создать конвертер @Body для класса

мой класс запроса:

data class DemoRequest(
val emailId: String? = null,
val demoData: List<DemoDomain?>? = null,
val userName: String? = null

)

Еще один момент, о котором следует упомянуть, что с GSONConverterFactory он работает нормально, но когда я переключился на MoshiConverterFactory, он выдает ошибку.

retrofitVersion = '2.3.0'

интерфейс службы:

@POST("call/api")
fun sendToServer(@Body request: DemoRequest):retrofit2.Call<RemoteResponse>

val retrofit = Retrofit.Builder()
            .baseUrl(BASE_URL)
            .client(okHttpClient)
            .addConverterFactory(MoshiConverterFactory.create())
            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
            .build()

ОБНОВЛЕНИЕ ------------- Я отправлял объект Date в запросе, поэтому мне нужно использовать пользовательский адаптер, и теперь он работает нормально

1 Ответ

0 голосов
/ 04 марта 2019

Не забыли ли вы изменить значение на MoshiConverterFactory при сборке Retrofit?

Retrofit.Builder().baseUrl(...).addConverterFactory(MoshiConverterFactory.create()).build()

Кроме того, последняя версия Retrofit 2.5.0, так что вы можете попробовать обновить и сделатьуверен, что ваш конвертер тоже той же версии.

...