Как передать запрос к базе данных в URL для модификации запроса get? - PullRequest
0 голосов
/ 13 июня 2019

Я создаю запрос на получение обновленной версии, где мне нужно передать запрос к базе данных и некоторый пространственный символ, такой как '$' в URL в kotlin. Но я получаю ошибку.

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>

Пожалуйста, помогите мне.

Ответы [ 2 ]

1 голос
/ 14 июня 2019

Проблема в том, что вы пытаетесь поместить параметр Path в середину запроса, когда вы предоставляете его через другой запрос.Вы должны переработать ваш запрос.Попробуйте что-то вроде:

@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)

Таким образом, это должно работать.

0 голосов
/ 13 июня 2019

Попробуйте заменить каждый символ $ (знак доллара) в URL-адресе на %24, поскольку знак доллара считается специальным символом в URL-адресе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...