最近我从GSONConverterFactory切换到MoshiConverterFactory。除了一个电话,其他所有东西都工作正常。像这里的其他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对象,因此我需要使用自定义适配器,并且现在可以正常使用
答案 0 :(得分:0)
在构建改造时,您还记得更改为MoshiConverterFactory
吗?
Retrofit.Builder().baseUrl(...).addConverterFactory(MoshiConverterFactory.create()).build()
此外,Retrofit的最新版本是2.5.0,因此您可以尝试升级并确保您的转换器也是同一版本。