我具有以下数据类:
data class Thing(
val id: Long?,
val title: String,
val description: String,
)
在我的Api中:
@POST("doThings")
fun createThings(
@Query("thing") thing: Thing
): Call<StatusResponse>
我得到了错误: 状态”:500,“错误”:“内部服务器错误”,“消息”:“意外字符('E'(代码69))
在spring api中,我做了一个日志输出,数据类对象的到达方式为:
“事物(id = null,标题=其他,描述=其他)”
Retrofit Builder具有GSON转换器,但我想它不能正常工作:
Retrofit.Builder()
.client(get())
.baseUrl(get<Context>().getString(R.string.base_url))
.addCallAdapterFactory(get<CoroutineCallAdapterFactory>())
.addConverterFactory(get<GsonConverterFactory>())
.build()
有什么建议吗?谢谢
答案 0 :(得分:0)
您正在使用@Query
批注,这意味着您的Thing
将被序列化为String
并作为查询参数传递到URL中。
您改为使用@Body
批注,该批注会将Thing
对象序列化为JSON并将其添加到POST正文中。
此答案将为您提供有关如何使用该注释的更多详细信息:https://stackoverflow.com/a/21423093/5577048