gpt4 book ai didi

kotlin - 将自定义 header 设置为 websocket 请求 (ktor)

转载 作者:行者123 更新时间:2023-12-02 13:36:28 26 4
gpt4 key购买 nike

我正在像这样从客户端建立一个 websocket 连接:

val client = HttpClient(CIO).config {
install(WebSockets)
}

client.webSocket(
method = HttpMethod.Get,
host = "127.0.0.1",
port = 8080,
path = "/api") {

// Send and receive messages
}

我想做的是向这个请求添加 http header 。

Ktor 有相当长的文档,但尽管如此我还是无法找到如何做到这一点。

最佳答案

终于找到答案了:

client.webSocket(
method = HttpMethod.Get,
host = "127.0.0.1",
port = 8080,
path = "/api",
request = {
header("my_header", "my_header_value")
}
) {
// more

如何找到这个?来自webSocket的签名:

suspend fun HttpClient.webSocket(
method: HttpMethod = HttpMethod.Get,
host: String = "localhost",
port: Int = DEFAULT_PORT,
path: String = "/",
request: HttpRequestBuilder.() -> Unit = {},
block: suspend DefaultClientWebSocketSession.() -> Unit
): Unit

这里的 HttpRequestBuilder 听起来像是可以自定义请求的东西(确实有一些关于它的文档)。

签名意味着 request 应该是一个作用域闭包,其中 this 将是 HttpRequestBuilder

此闭包可以设置标题或更改其他内容。例如,HttpRequestBuilder.header .

关于kotlin - 将自定义 header 设置为 websocket 请求 (ktor),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55441531/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com