Как правильно поместить переменную в URL. Дооснащение 2.0 - PullRequest
0 голосов
/ 28 апреля 2018

Я пытаюсь указать идентификатор таким образом:

@Headers("Content-type: multipart/form-data")
@POST("/files/upload?dir=userIcons/{id}")
fun upload(@Query("id", encoded = true) id: String,
           @Body encodedImg: String) : Call<IconModel>

Но я получаю ошибку с заменой. И знаю, как это исправить.

Вот сообщение об ошибке:

java.lang.IllegalArgumentException: URL query string "dir=userIcons/{id}" must not have replace block. For dynamic query parameters use @Query.

1 Ответ

0 голосов
/ 29 апреля 2018

Поскольку у вас не может быть блока замены в запросе (независимо от того, как вы затем пытаетесь заменить его, использование @Path также не будет работать с ним), вот способ сделать это вместо этого. Вы можете удалить части запроса из пути, переданного аннотации @POST:

@Headers("Content-type: multipart/form-data")
@POST("/files/upload")
fun upload(@Query("dir", encoded = true) id: String,
           @Body encodedImg: String): Call<IconModel>

И затем вы должны передать все значение параметра запроса при вызове API:

val call = api.upload("userIcons/foo", "bar")

Это приведет к такому вызову, который, я думаю, вам нужен:

/files/upload?dir=userIcons/foo 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...