使用 JSON 参数改造 GET 请求
Posted
技术标签:
【中文标题】使用 JSON 参数改造 GET 请求【英文标题】:Retrofit GET request with JSON parameters 【发布时间】:2020-06-14 02:51:56 【问题描述】:我正在尝试使用 Retrofit 我的自定义对象从 Parse Server 获取。
http 请求是:
https://MY.SERVER./1/classes/Fiestas?where="Epoca":"__type":"Pointer","className":"Epocas","objectId":"myObjectId"
所以我有这个界面:
@GET("Fiestas?where=\"Epoca\":\"__type\":\"Pointer\",\"className\":\"Epocas\",\"objectId\":\"epoca_id\"")
fun getFiestaByEpocaId(@Path("epoca_id") epoca_id: String): Deferred<JSONResponse>
但我收到此错误:
java.lang.IllegalArgumentException: URL query string "where="Epoca":"__type":"Pointer","className":"Epocas","objectId":"epoca_id"" must not have replace block. For dynamic query parameters use @Query.
for method FiestaApi.getFiestaByEpocaId
有人知道在 kotlin 的 GET 改造请求中发送 JSON 的任何解决方案吗?
谢谢!
【问题讨论】:
【参考方案1】:你可以试试这个:
@GET("Fiestas")
fun getFiestaByEpocaId(
@Query("where") jsonString: String
): Call<JSONObject>
你的 json 对象是:
val jsonString = "\"__type\":\"Pointer\",\"className\":\"Epocas\",\"objectId\":\"epoca_id\""
并在请求方法之前调用jsonString.replace("\","")
【讨论】:
以上是关于使用 JSON 参数改造 GET 请求的主要内容,如果未能解决你的问题,请参考以下文章
如何使用android studio中的改造服务在请求中传递json