1. 概要
この短いチュートリアルでは、Retrofit2で動的URLを作成する方法を学習します。
2. @Urlアノテーション
実行時にアプリケーションで動的URLを使用する必要がある場合があります。 レトロフィットライブラリのバージョン2では、 @Url アノテーションが導入され、エンドポイントの完全なURLを渡すことができます。
@GET
Call<ResponseBody> reposList(@Url String url);
この注釈は、 HttpUrl からのクラス OkHttpのライブラリ、およびURLアドレスはを使用してページ上のリンクのように解決されます 「」 >> 。 @Url パラメーターを使用する場合、@GETアノテーションでアドレスを指定する必要はありません。
@ Url パラメーターは、サービス実装のbaseUrlを置き換えます。
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.github.com/")
.addConverterFactory(GsonConverterFactory.create()).build();
重要なのは、 @Url アノテーションを使用する場合は、サービスメソッドの最初のパラメーターとして設定する必要があるということです。
3. パスパラメータ
ベースURLの一部が一定であることがわかっているが、その拡張子や使用されるパラメーターの数がわからない場合は、@Pathアノテーションとエンコードされたを使用できます。国旗:
@GET("{fullUrl}")
Call<List<Contributor>> contributorsList(@Path(value = "fullUrl", encoded = true) String fullUrl);
このように、エンコードされたパラメーターを使用しなかったかのように、すべての「/」が%2Fに置き換えられることはありません。 ただし、すべての文字「?」 渡されたアドレスのは、%3Fに置き換えられます。
4. 概要
Retrofitライブラリを使用すると、 @Url アノテーションのみを使用して、アプリケーションの実行時に動的URLを簡単に提供できます。
いつものように、すべてのコード例はGitHubのにあります。