Android: параметры пути в HTTP-методе get путем модификации - PullRequest
1 голос
/ 07 января 2020

У меня есть эта ссылка API:

http://www.xxxx.com/?apikey=mykey&i=tt036543

Теперь при модификации я пытаюсь вызвать этот API с помощью метода GET, чтобы я мог создать этот интерфейс:

@GET("/?apikey=mykey&i={movie_id}")
Call<MovieDetailEntity> getSearchedMovie(@Path("movie_id") String id);

Но я получил эта ошибка:

java.lang.IllegalArgumentException: URL query string "apikey=mykey&i={movie_id}" must not have replace block. For dynamic query parameters use @Query.
    for method BatmanService.getSearchedMovie

Если я использую этот запрос:

@GET("/?apikey=mykey&i=")
Call<MovieDetailEntity> getSearchedMovie(@Query("movie_id") String id);

Тогда ссылка изменится на:

http://www.xxxx.com/?apikey=mykey&i=&movie_id=tt036543

Как я могу вызвать этот API?

1 Ответ

2 голосов
/ 07 января 2020

Если я хорошо помню, когда вы используете @query, вам не следует устанавливать переменную в URL. Он будет использовать строку внутри аннотации @query в качестве имени переменной.

Это должно работать:

@GET("/?apikey=mykey")
Call<MovieDetailEntity> getSearchedMovie(@Query("i") String id);

И это также, если вы также хотите передать свой ключ API:

@GET("/")
Call<MovieDetailEntity> getSearchedMovie(@Query("apikey") String mykey,
                                         @Query("i") String id);

? и & автоматически добавляются для вас.

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