1. ホーム
  2. アンドロイド

[解決済み】AndroidでURIビルダーを使うか、変数でURLを作成するか

2022-04-05 12:03:04

質問

Androidアプリを開発しています。APIリクエストを行うために、アプリ用のURIを作成する必要があります。URIに変数を入れる他の方法がない限り、これが私が見つけた最も簡単な方法です。私は、あなたが使用する必要があることを発見しました Uri.Builder しかし、どうすればいいのかよくわかりません。私のurlは

http://lapi.transitchicago.com/api/1.0/ttarrivals.aspx?key=[redacted]&mapid=value 

私のスキームは http で、オーソリティは lapi.transitchicago.com で、パスは /api/1.0 パスセグメント(複数可 ttarrivals.aspx で、クエリ文字列は key=[redacted]&mapid=value .

私のコードは以下の通りです。

Intent intent = getIntent();
String value = intent.getExtras().getString("value");
Uri.Builder builder = new Uri.Builder();
builder.scheme("http")
    .authority("www.lapi.transitchicago.com")
    .appendPath("api")
    .appendPath("1.0")
    .appendPath("ttarrivals.aspx")
    .appendQueryParameter("key", "[redacted]")
    .appendQueryParameter("mapid", value);

ができることは理解しています。 URI.add に統合するにはどうしたらよいでしょうか。 Uri.Builder ? のようにすべて追加すればよいのでしょうか? URI.add(scheme) , URI.add(authority) といった具合でしょうか?それとも、そのやり方ではダメなのでしょうか?また、URI/URLに変数を追加するために、他にもっと簡単な方法はないでしょうか?

どのように解決するのですか?

例えば、次のようなURLを作りたいとします。

https://www.myawesomesite.com/turtles/types?type=1&sort=relevance#section-name

で構築する場合 Uri.Builder 私なら次のようにします。

Uri.Builder builder = new Uri.Builder();
builder.scheme("https")
    .authority("www.myawesomesite.com")
    .appendPath("turtles")
    .appendPath("types")
    .appendQueryParameter("type", "1")
    .appendQueryParameter("sort", "relevance")
    .fragment("section-name");
String myUrl = builder.build().toString();