Установить пользовательские заголовки для запроса websocket (ктор) - PullRequest
0 голосов
/ 31 марта 2019

Я устанавливаю соединение с веб-сокетом от клиента следующим образом:

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 к этому запросу.

У Ктора довольно длинная документация, но, несмотря на это, я не могу найти, как это сделать.

1 Ответ

0 голосов
/ 31 марта 2019

В конце концов нашел ответ:

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.

...