【问题标题】:Example of URL builder in KtorKtor 中的 URL 构建器示例
【发布时间】:2021-02-02 10:21:09
【问题描述】:

我正在使用 Ktor 客户端调用 API,但没有找到任何关于如何使用查询参数构造 URL 的示例。

我想要这样的东西:

protocol = HTTPS,
host = api.server.com,
path = get/items,
queryParams = List(
  Pair("since", "2020-07-17"),
  
)

我找不到任何关于如何为此使用 URL 构建器的示例。

【问题讨论】:

    标签: kotlin ktor


    【解决方案1】:

    如果您想分别指定每个元素(协议、主机、路径和参数),您可以使用HttpClient.request 方法来构造您的url。在此方法中,您可以访问HttpRequestBuilder,然后您可以使用UrlBuilder 配置url

    client.request<Response> {
                url {
                    protocol = URLProtocol.HTTPS
                    host = "api.server.com"
                    path("get", "items")
                    parameters.append("since", "2020-07-17")
                }
            }
    

    Response 类型是您的回复,您可以在此处指定任何您需要的内容

    【讨论】:

      【解决方案2】:

      如果有人想为他们的所有请求添加一个基本 URL,这也会很有帮助:

       HttpClient(Android) {
      
              expectSuccess = false
      
              //config Client Serialization
              install(JsonFeature) {
                  serializer = KotlinxSerializer(json)
              }
      
              //config client logging
              install(Logging) {
                  level = LogLevel.BODY
              }
      
              //Config timeout
              install(HttpTimeout) {
                  requestTimeoutMillis = 30 * 1000L
                  connectTimeoutMillis = 10 * 1000L
              }
      
              //Config Base Url
              defaultRequest {
                  url {
                      protocol =URLProtocol.HTTPS
                      host = baseUrl
                  }
              }
          }
      
        val json = kotlinx.serialization.json.Json {
          ignoreUnknownKeys = true
          isLenient = true
          encodeDefaults = false
      }
      

      【讨论】:

        猜你喜欢
        • 2021-04-11
        • 2018-03-03
        • 1970-01-01
        • 1970-01-01
        • 2022-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多