【正社員】還元率83%【フリーランス】マージン一律5万円で案件をご紹介させていただきます。 詳細はこちら

【Android】<Kotlin>Uriクラスの使い方完全ガイド!文字列URLをUriに変換し、パス、クエリなどの情報を取得する方法を徹底解説

【Android】<Kotlin>Uriクラスの使い方完全ガイド! 文字列URLをUriに変換し、 パス、クエリなどの情報を取得する方法を徹底解説
すだ

みなさまこんにちは〜!
メモリアインクのすだです。

本日は、
KotlinのUriクラスを使って、文字列URLをUriに変換し
Uriから各情報を取得する方法について
実際のコードを利用して徹底解説していきます!

この記事を読んでわかること…
・Uriクラスの使い方
・文字列URLをUriに変換方法する方法
・Uriから各情報を取得する方法

目次

環境

  • Kotlin (ver 1.9.0)
  • Android Studio (Giraffe | 2022.3.1 Patch 3)

Uriクラスとは?URL/URI解析の基本

Kotlin(およびJava)でURLやURIを解析する際には、Android標準のUriクラスが便利です。
Uriを使用することで、以下のような構成要素を簡単に取得できます。

Uriクラスで取得できる主な情報

プロパティ説明
schemeURLのスキーム(プロトコル部分)https, http, test
hostURLのホスト名(ドメイン部分)www.example.com
pathURLのパス部分/path/to/resource
queryURLのクエリ文字列key=value
fragmentURLのフラグメント部分#section1

文字列で渡ってきたURLをUri.parseする意味と方法

Uri.parseは、文字列として渡されたURLやURIを解析して操作可能なUriオブジェクトに変換するためのメソッドです。

なぜUri.parseを使うのか?

  • URLを操作可能にする文字列URLだけでは、スキームやホスト、クエリなどの部分を簡単に取得することができませんが、Uriに変換するとこれが可能になります。
  • 解析と検証::無効なURLを検出したり、必要な構造に基づいて処理を行う際に便利です。
val url = "https://www.example.com/path/to/resource?key=value"
val uri = Uri.parse(url)
println(uri.host) // www.example.com

Uriから情報を取得する方法

以下のコードで、Uriオブジェクトを使ってURL/URIの情報を取得することができます。

val uri = Uri.parse("https://www.example.com/path/to/resource?key=value#section1")

println("スキーム: ${uri.scheme}")  // https
println("ホスト: ${uri.host}")      // www.example.com
println("パス: ${uri.path}")        // /path/to/resource
println("クエリ: ${uri.query}")    // key=value
println("フラグメント: ${uri.fragment}") // section1

出力結果

スキーム: https
ホスト: www.example.com
パス: /path/to/resource
クエリ: key=value
フラグメント: section1

Uriクラスの様々な使い方

パスの特定部分を確認する方法

path?.startsWithを使用することで、特定のパスの構造に一致するかどうかを簡単に確認できます。

例:APIエンドポイントの確認

val uri = Uri.parse("https://www.example.com/api/resource")
if (uri.path?.startsWith("/api") == true) {
    println("APIエンドポイントにアクセスしています!")
} else {
    println("通常のエンドポイントです。")
}

出力結果 ▼

APIエンドポイントにアクセスしています!

クエリパラメータを取得する方法

getQueryParameterを使用すると、クエリ文字列から特定のパラメータの値を抽出できます。

例:特定のクエリパラメータを取得

val uri = Uri.parse("https://www.example.com/resource?test=12345&debug=true")
val crefValue = uri.getQueryParameter("test")
println("testの値: $testValue")

出力結果

testの値: 12345

URIを手軽に組み立てる

URLをプログラム内で構築する場合、Uri.Builderを使用すると簡単です。

val uri = Uri.Builder()
    .scheme("https")
    .authority("www.example.com")
    .path("api/resource")
    .appendQueryParameter("user", "123")
    .appendQueryParameter("debug", "true")
    .build()

println(uri)

出力結果

https://www.example.com/api/resource?user=123&debug=true

まとめ

おつかれさまでした。いかがでしたでしょうか!

  1. 文字列URLをUri.parseで解析し、操作可能なUriオブジェクトに変換。
  2. Uriクラスを使ってスキーム、ホスト、パス、クエリなどの情報を簡単に取得。
  3. Uriクラスの様々なメソッドの利用

上記をぜひ覚えて、アプリ開発で試してみてくださいね〜!

すだ

技術者としてのキャリアパスを次のレベルへと進めたい皆様、
未経験からIT・Webエンジニアを目指すなら【ユニゾンキャリア】
を通じて、
自分の市場価値をさらに向上させてみませんか?

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

弊社テックブログをご愛読いただきありがとうございます。
当テックブログを運用している株式会社メモリアインクは、
【正社員】還元率83%
【フリーランス】マージン一律5万円で案件のご紹介
と、エンジニアの皆様に分かりやすい形で稼げる仕組みを構築し提供させていただいております。詳しくは弊社お問い合わせページ、プロフィールのQRコードを読み取り、LINEメッセージでお問い合わせいただけますと幸いです。

コメント

コメントする

目次