使用Retrofit2的自定义参数

时间:2017-10-27 19:55:30

标签: android retrofit2

我想在Android上使用Retrofit2定制我的endPoint,但我有疑问。

如果我这样做:

 @GET("Search") //i.e https://api.test.com/Search? 
      Call<Products> getProducts(@Query("one") String one, @Query("two") String two,    
                                @Query("key") String key)

我的endPoint可能是这样的:

//-> https://api.test.com/Search?one=Whatever&two=here&key=SFSDF24242353434

我正在使用此endPoint:

// -> https://example.com/third-party-public/categories/category_id.json

如果我使用与上面解释的相同的ideia,结果可能是:

@GET("/third-party-public/categories/")
Observable<List<Category>> getCategoryDetail(@Query(".json") String category_id);

结果可能是:

// -> https://example.com/third-party-public/categories/.json=1

但我想要那个结果

// -> https://example.com/third-party-public/categories/1.json

如何设置我的@query以获得该结果?

2 个答案:

答案 0 :(得分:1)

如果您使用查询设置请求,则将其设置为查询参数'?'。

如果您想要的结果是您只需在路径中使用它:

@GET("Search/{fileUri}") 
      Call<Products> getProducts(@Path("fileUri") String fileUri);

你得到它的值为“1.json”。

答案 1 :(得分:1)

@GET("/third-party-public/categories/{category_id}.json")
Observable<List<Category>> getCategoryDetail(@Path("category_id") String category_id);