如何在纯Kotlin Common模块中从URL获取主机地址
在Kotlin Multiplatform(纯Kotlin,基于Ktor)中提取URL主机地址
方案:使用Ktor的Url类
Ktor提供的io.ktor.http.Url是跨平台的通用工具类,完全适配Common模块,无需依赖JVM特定API,可直接用来解析URL并提取主机地址。
1. 配置依赖
在KMM项目的Common模块build.gradle.kts中添加Ktor HTTP依赖(版本请匹配你使用的Ktor版本):
commonMain.dependencies { implementation("io.ktor:ktor-http:$ktorVersion") }
2. 解析URL提取主机
通过Url类解析目标URL字符串,直接调用host属性即可获取主机地址,示例代码:
import io.ktor.http.Url fun getHostFromUrl(url: String): String { return Url(url).host } // 使用示例 fun demo() { val sampleUrl = "https://example.com/path/to/resource?param=1" println(getHostFromUrl(sampleUrl)) // 输出:example.com }
补充说明
- 该方案支持所有Ktor兼容平台(JVM、Android、iOS、JS、Linux等),无需为不同平台单独编写适配代码。
- 若URL包含端口号,可通过
Url的port属性单独获取,host属性仅返回主机名部分。 - 非法URL会触发
IllegalArgumentException,可根据业务需求添加异常捕获逻辑。
内容的提问来源于stack exchange,提问作者eenNaampje
相关产品推荐
相关产品推荐

