2014-09-04 4 views
11

Я использую внешнюю службу, как: http://domain.com/free/v1/servicename.ext?format=json&num_of_days=4дооснащения со старой школьной службы

Я пытаюсь использовать Дооснащение подобное:

@GET("/free/v1/servicename.ext?format=json&num_of_days={numOfDays}") 
void serviceName(@Path("numOfDays") int numOfDays, Callback<Result> callback); 

но исключение:

URL query string must not have replace block. 

Совместим ли он с этим типом URL?

ответ

34

Это абсолютно совместимо с этим!

Вы не можете использовать @Path внутри параметров запроса. Эта аннотация предназначена только для замены внутри пути.

Параметр @Query позволяет создавать динамические параметры запроса.

@GET("/free/v1/servicename.ext?format=json") 
void serviceName(@Query("num_of_days") int numOfDays, Callback<Result> callback); 
+0

Большое спасибо Джейку! Это работает хорошо ! – Fab

+0

ИСТИНА, которая мне очень помогла, спасибо! Заменено: @GET ("/ апи/access_token ник = {ник} и пароль = {пароль}?") Наблюдаемые authorizationToken ( @Path ("псевдоним") Строка имя_пользователя, @Path ("пароль ") Строковый пароль ); С: @GET ("?/Апи/access_token") Наблюдаемые authorizationToken ( @Query ("псевдоним") Строка прозвище, @Query ("пароль") Строка пароля ); И это работает как шарм. – careful7j

+0

Почему retrofit 2 должен установить 'baseUrl()'? Я думаю, что '@GET ('http://www.google.com/path')' намного проще в использовании. –