みなさまこんにちは〜!
メモリアインクのすだです。
本日は、
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
クラスで取得できる主な情報 ▼
プロパティ | 説明 | 例 |
---|---|---|
scheme | URLのスキーム(プロトコル部分) | https, http, test |
host | URLのホスト名(ドメイン部分) | www.example.com |
path | URLのパス部分 | /path/to/resource |
query | URLのクエリ文字列 | key=value |
fragment | URLのフラグメント部分 | #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
まとめ
おつかれさまでした。いかがでしたでしょうか!
- 文字列URLを
Uri.parse
で解析し、操作可能なUriオブジェクトに変換。 - Uriクラスを使ってスキーム、ホスト、パス、クエリなどの情報を簡単に取得。
- Uriクラスの様々なメソッドの利用
上記をぜひ覚えて、アプリ開発で試してみてくださいね〜!
技術者としてのキャリアパスを次のレベルへと進めたい皆様、
未経験からIT・Webエンジニアを目指すなら【ユニゾンキャリア】
自分の市場価値をさらに向上させてみませんか?
コメント