改造接口
interface ApiService {
@GET("/api")
suspend fun get(
@QueryMap params: Map<String, Any>
): Response<ResponseBody>
}Moshi自定义适配器
class InstantJsonAdapter : JsonAdapter<Instant>() {
override fun toJson(writer: JsonWriter, value: Instant?) {
// ...
}
}当我调用apiService.get(params)时,Moshi适配器无法识别Instant类型的任何参数请求,因此它从不调用toJson()方法。
发布于 2022-04-22 10:22:04
正如QueryMap的文档所述,QueryMap通过委托给Converter.Factory.stringConverter的retrofit.stringConverter()进行转换。
MoshiConverterFactory只实现responseConverter和requestConverter,而不实现stringConverter。所以如果你使用它,这就是原因。
您可以实现自己的转换器工厂,并通过Retrofit.Builder.addConverterFactory()添加它。
https://stackoverflow.com/questions/71947497
复制相似问题