2016-04-24 5 views
1

Здравствуйте, я пытаюсь использовать @Query ретрофитом, но я получаю ошибку что-то вроде этого: -Невозможно использовать запрос ретрофитом

не должны заменить блок. Для динамических параметров запроса используйте @Query.

вот мой интерфейс: -

public interface Parser { 

    @GET("weather?q={city}&appid=0a8") 
    Call<Model> getModel(@Query("city") String city); 
} 

И это в моей деятельности: -

Retrofit retrofit = new Retrofit.Builder() 
      .baseUrl("xyz/") 
      .addConverterFactory(GsonConverterFactory.create()) 
      .build(); 

Parser parser = retrofit.create(Parser.class); 
     Call<Model> call = parser.getModel("london"); 

Заранее спасибо

ответ

0

В этом случае вы должны использовать @Path вместо @Query

public interface Parser { 

    @GET("weather?q={city}&appid=0a8") 
    Call<Model> getModel(@Path("city") String city); 
} 
1

если ваш апи запрос должен быть как -

BASE_URL/weather?q=london&appid=0a8 

Затем используйте

@GET("weather") 
Call<Model> getModel(@Query("q") String city,@Query("appid") String app_id); 
+0

Великий ответ - за полный набор возможностей "@Query" - см Javadoc запросов: HTTP: // square.github.io/retrofit/2.x/retrofit/ –

Смежные вопросы