android - 如何在获取请求改造的 URL 中传递数据库查询?
问题描述
我正在创建一个改造获取请求,我需要在 kotlin 的 URL 中传递一个数据库查询和一些空间字符,如“$”。但我收到错误。
java.lang.IllegalArgumentException:URL 查询字符串不能有替换块。对于动态查询参数,使用@Query。
这是我在邮递员中使用但不能在改造中使用的 URL
https://someURL.com?customParam=true&pageSize=100&query= $filter=(drivercell eq'1111111119')$orderby=creationTimedesc&withTotalPages=true
这是调用改造方法的代码
val restServiceModel = DRestServiceModel.create()
val model = restServiceModel.getTripsData("Basic bWs6SU9UMTIzNCM=", "application/json", "\$filter=(drivercell%20eq'1111111119')")
这是方法
@GET("inventory/managedObjects?customParam=true&pageSize=100&{query}\$orderby=creationTimedesc&withTotalPages=true")
fun getTripsData(@Header("Authorization") token: String, @Header("Content-Type") contentType: String, @Query("query", encoded = true) query : String): Single<TripsResponseModel>
请帮我。
解决方案
问题是您试图将路径参数放在查询中间,同时通过另一个查询提供它。你应该修改你的请求。尝试类似:
@GET("inventory/managedObjects")
fun getTripsData(@Header("Authorization") token: String,
@Header("Content-Type") contentType: String,
@Query("customParam") customParam: Boolean?,
@Query("pageSize") pageSize: Int?,
@Query("query", encoded = true) query: String,
@Query("withTotalPages") withTotalPages: Boolean?): Single<TripsResponseModel>
并像这样使用它:
val model = restServiceModel.getTripsData("Basic bWs6SU9UMTIzNCM=", "application/json", true, 100, "your query_goes here", true)
这种方式应该可以工作。
推荐阅读
- gitlab - 在我的服务器上重新安装 gitlab
- java - 我无法登录到 azure 以使用 eclipse 发布我的应用程序
- javascript - 在变量上使用 parse_str 的可能性
- python - 如何合并仅几列的两个数据框
- windows - 恢复 postgres 备份类型“几何”不存在
- php - WP:使用 Polylang 更改“get_the_time('d F, Y')”日期格式
- sql - 给定场景的国家和城市数据的排序查询
- python - 如何在初始化之外的方法中添加类继承?
- python - pandas DataFrame 样式,如 Excel 分级色标条件格式
- python - 如何打开窗口最大化的应用程序?