我试过这个界面:
public interface InterfaceWs
{
@GET("/?extract-mode=bestdeals&api-key={apikey}") public Observable<List<ModelBestDeals>> getBestDeals(@Query("apikey") String apikey);
}
在使用@Query
之前,我使用@Path
。我改变了
我收到了这个错误:
URL query string "extract-mode=bestdeals&api-key={apikey}" must not have replace block. For dynamic query parameters use @Query.
有什么问题?
答案 0 :(得分:4)
@GET("/?extract-mode=bestdeals&api-key={apikey}") public Observable<List<ModelBestDeals>> getBestDeals(@Query("apikey") String apikey);
应该是
@GET("/?extract-mode=bestdeals") public Observable<List<ModelBestDeals>> getBestDeals(@Query("api-key") String apikey);
改造将使用api-key=value
来完成您的网址,其中value是apikey
的值。您还可以使用QueryMap提供另一对extract-mode=bestdeals
。 E.g。
Map<String, String> map = new HashMap<>();
map.put("extract-mode", "bestdeals");
map.put("api-key", apikey);
和你的方法
@GET("/") public Observable<List<ModelBestDeals>>
getBestDeals(@QueryMap Map<String, String> values);
在我看来,更具可读性