【发布时间】:2019-10-12 04:17:28
【问题描述】:
我在 ktor-client 文档和示例中几乎无处不在,他们使用空的 formData 来展示客户端的工作方式
formParameters: Parameters = Parameters.Empty
那么 kotlin/ktor 用参数填充它的方式是什么?
【问题讨论】:
标签: kotlin httpclient ktor
我在 ktor-client 文档和示例中几乎无处不在,他们使用空的 formData 来展示客户端的工作方式
formParameters: Parameters = Parameters.Empty
那么 kotlin/ktor 用参数填充它的方式是什么?
【问题讨论】:
标签: kotlin httpclient ktor
Ktor 使用这种方式来填充参数:
client.submitForm<HttpResponse>(
url = "https://foo.com/login",
formParameters = Parameters.build {
append("_username", username)
append("_password", password)
})
【讨论】:
或者,您也可以使用formData 简单地传递表单数据,例如:
client.post<HttpResponse>("https://example.com/login") {
formData {
parameter("username", username)
parameter("password", password)
}
}
【讨论】:
我找到了至少三种发布 www-urlencoded 表单的方法:
return httpClient.submitForm("url") {
parameter("key", "value")
}
return httpClient.post("url") {
FormDataContent(Parameters.build {
parameter("key", "value")
})
}
return httpClient.post("url") {
formData {
parameter("key", "value")
}
}
append() 方法被标记为内部方法,不适用于 ktor 1.6.4
【讨论】: