2016-11-22 4 views
2

私はRetrofit 1に関する投稿とドキュメントを読んでいます。& 2.ユーザーからレポを取得するための次のソースコードがあります。 retrofit2でRetrofitで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); 

とあなたがwww.xxx.com/sam、www.xxx.com/sushanよう

URLのパスまたはURLやキーワードを変更すると@pathは(に使用されているほとんど@pathなど、使用されています

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

NOTE ....

私たちはこのように使用)別のユーザーのデータをフェッチ: - @queryは常にURLの末尾に来ます。 @PathはURLのどこでも使用されます

+0

原因:java.lang.IllegalArgumentException:URLクエリ文字列にブロックを置き換えてはいけません。動的クエリパラメータの場合、@ Query.Iを使用してください。ユーザー間にユーザーIDを挿入する方法はわかりません。/.../ repos – MAOL

+0

URLの途中で 'user'について確信していますか? .... 'RESTful API '全体を共有してください..... – sushildlh

+0

中間にありますが、github apiは' @ Query'ではなく '@ Path'よりも – MAOL

0

クエリパラメータも追加することができ、ありがとうございました。

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

変更する必要はありません。

関連する問題