You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 15:33:13