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にあります。