2016-11-22 7 views
2

개정판에 관한 게시물 및 문서를 읽는 중입니다. & 2. 사용자로부터 리포를받을 다음 소스 코드가 있습니다. retrofit2에서URL 중간에 추가 기능이있는 매개 변수를 쿼리하는 방법

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

는 지금 우리가 @query와 @Path을 변경해야하는 것을 볼 수 있지만, 사용 방법은 동일 나도 몰라. 그것은 다음과 같거나 더 많은 것을 바꿀 필요가 있습니까?

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

답변

3

모두 당신이 검색하는 데 사용되는 대부분 @query www.xxx.com/user=name (같은

URL에 어떤 값을 할당해야 할 때 다른 @query가

을 사용하다 사용자 세부 사항) 우리는 다음과 같이 사용

....

@GET("users/repos") 
Call<List<GithubRepo>> getRepos(@Query("user") String user); 
당신이 은 (대부분 @Path에 사용되는 등 sushan www.xxx.com/sam, www.xxx.com/같은 경로 나 URL 또는 URL

의 키워드를 변경할 때

및 @Path 사용됩니다

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

참고 ....

우리는 다음과 같이 사용) 다른 사용자의 데이터를 가져 - @query은 항상 URL의 끝에 온다. 그리고 URL의 어디에서나 @Path가 사용됩니다.

+0

에 의해 발생 : java.lang.IllegalArgumentException : URL 쿼리 문자열에 블록을 대체 할 수 없습니다. 동적 쿼리 매개 변수의 경우 @ Query를 사용합니다. 사용자간에 사용자 ID를 삽입하는 방법을 알지 못합니다 /.../ repos – MAOL

+0

URL 중간에'user'에 대해 확실합니까? .... 전체'RESTful API '를 공유 하시겠습니까 ..... – sushildlh

+0

중간에, github api가'@ Query'가 아닌 – MAOL

0

쿼리 매개 변수도 추가 할 수 있습니다 주셔서 감사합니다.

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

변경하지 않아야합니다.