Ktor Client URL构建器示例求助:带查询参数的URL构造方法
Ktor Client 构建带查询参数的URL示例
没问题,我来给你展示Ktor Client里怎么构建符合你需求的URL,用官方推荐的DSL方式最直观,还能自动处理参数编码这些细节:
import io.ktor.client.* import io.ktor.client.engine.cio.* import io.ktor.client.request.* import io.ktor.http.* suspend fun main() { // 初始化CIO引擎的HttpClient val client = HttpClient(CIO) try { val response = client.get { // 用Ktor的URL构建DSL来配置请求地址 url { protocol = URLProtocol.HTTPS // 指定HTTPS协议 host = "api.server.com" // 设置主机域名 path("get", "items") // 拆分路径片段,自动处理斜杠拼接 // 处理你的查询参数列表 val queryParams = listOf(Pair("since", "2020-07-17")) queryParams.forEach { (key, value) -> parameters.append(key, value) } } } // 这里可以处理响应,比如打印状态码 println("请求状态码: ${response.status}") } finally { client.close() // 记得关闭客户端 } }
关键部分解释:
url代码块是Ktor配置请求地址的核心方式,不用手动拼接字符串,避免出错protocol使用URLProtocol枚举值,直接指定HTTPS更规范path接受可变参数,把路径拆成多个片段传入,Ktor会自动帮你拼接成正确的/get/items路径parameters.append()用来添加查询参数,如果有多个参数,直接遍历你的List<Pair>循环添加就行,它会自动处理参数的URL编码
如果只是单个参数,也可以简化成一行:parameters.append("since", "2020-07-17"),不用写循环。
内容的提问来源于stack exchange,提问作者user513590
相关产品推荐
相关产品推荐

