问题描述
我正在将Kotlinx Serialization
与Retrofit
一起使用,并尝试通过Body
在HashMap
发送参数,如下所示
@POST("post")
suspend fun sendPost(@Body params : HasMap<String,@Contextual @RawValue Any>) : GenericResponse<Post>
但是它给出了此错误消息
Unable to create @Body converter for java.util.HashMap<java.lang.String,java.lang.Object> (parameter #1)
我也将SerializersModule
添加到Retrofit
,但这没有帮助
fun provideRetrofit(baseUrl : String,okHttpClient: OkHttpClient) : Retrofit {
val contentType = "application/json".toMediaType()
val json = Json {
serializersModule = SerializersModule {
contextual(String.serializer())
contextual(Int.serializer())
contextual(Double.serializer())
contextual(Boolean.serializer())
}
}
return Retrofit.Builder()
.baseUrl(baseUrl)
.client(okHttpClient)
.addConverterFactory(json.asConverterFactory(contentType))
.build()
}
有人可以帮忙吗?
Kotlinx Version 1.0.1
Kotlinx Converter Version 0.8.0
Kotlin Version 1.4.10
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)