2016-11-22 43 views
2

我正在阅读文章和文档关于改造1 & 2.我有下一个源代码来获取用户的回购。如何在URL中间查询参数与改造

@GET("users/{user}/repos") 
Call<List<GithubRepo>> getRepos(@Path("user") String user); 

在retrofit2中我看到现在我们需要使用@Query更改@Path,但是我不知道使用的方法是否相同。这就像下一个,或者我需要改变一些东西?

@GET("users/{user}/repos") 
Call<List<GithubRepo>> getRepos(@Query("user") String user); 

谢谢你还可以添加

回答

3

两个不同@Query用于

时,你必须在

URL分配一定的价值像www.xxx.com/user=name (大多@query被用来搜索用户详细信息)

我们用这样的....

@GET("users/repos") 
Call<List<GithubRepo>> getRepos(@Query("user") String user); 
当您更改 (大多@path用于路径或URL或URL

的关键词中www.xxx.com/sam,www.xxx.com /苏珊等

和@Path使用 取不同的用户的数据)

我们用这样的....

@GET("users/{user}/repos") 
Call<List<GithubRepo>> getRepos(@Path("user") String user); //here url changes with the value of String user 

注: - @Query总是在URL的末尾。而@Path在URL中的任何地方使用

+0

引起:java.lang.IllegalArgumentException:URL查询字符串不能有替换块。对于动态查询参数,使用@ Query.I然后不知道如何在用户之间插入用户ID /.../repos – MAOL

+0

您确定URL中间有'user',时间查询的MOST放在URL末尾.. ....请你分享整个'RESTFUL API' ..... – sushildlh

+0

它在中间,是github api – MAOL

0

查询参数。

@GET("group/{id}/users") 
Call<List<User>> groupList(@Path("id") int groupId, @Query("sort") String sort); 

什么都不能改变。