2014-10-09 61 views
5

我想使用Retrofit执行批量请求。它有什么好方法,如何实现它?基本上我想要做的是替换URL的查询部分中的一些字符(替换块只允许在URL的路径部分 - 使用@Path注释)。使用Retrofit的批量请求

这是我的问题的伪代码。

@GET("/v2/multi?requests=/users/self,/venues/search?client_id={client_id}&client_secret={client_secret}&v={v}&ll={ll}&intent={intent}&limit={limit}") 
    ProfileSearchVenuesResponse searchVenuesAndProfiles(@ReplaceBy("client_id") String clientId, 
          @ReplaceBy("client_secret") String clientSecret, 
          @ReplaceBy("v") int version, 
          @ReplaceBy("ll") String location, 
          @ReplaceBy("intent") String intent, 
          @ReplaceBy("limit") int limit); 

回答

9

@Query是你在找什么:

@GET("/v2/multi?requests=/users/self,/venues/search") 
ProfileSearchVenuesResponse searchVenuesAndProfiles(
    @Query("client_id") String clientId, 
    @Query("client_secret") String clientSecret, 
    @Query("v") int version, 
    @Query("ll") String location, 
    @Query("intent") String intent, 
    @Query("limit") int limit); 

在改造(昨天发布)异常信息的1.7.0版本试图在原来的问题使用@Path指示您作为对正确的解决方案:

URL查询字符串“的client_id = {} CLIENT_ID & client_secret = {} client_secret & v = {v} & ll = {ll} & intent = {intent} & limit = {limit}“不能有替换块。对于动态查询参数使用@Query。

+0

谢谢!我在1.6.0上,所以我没有得到可以使用'@ Query'的信息。 – sealskej 2014-10-09 23:41:33