Ktor Android 客户端 Websocket 连接失败

Ktor Android Client Websocket Connection Failed

WebSocket服务器为在线测试服务器 The Website 出了点问题,我不知道如何解决。

val client = HttpClient(CIO) { install(WebSockets) }
GlobalScope.launch {
    client.webSocket("ws://82.157.123.54:9010/ajaxchattest") {}
}

错误printStackTrace

java.lang.IllegalStateException: Failed to parse request body: request body length 
should be specified,
chunked transfer encoding should be used or
keep-alive should be disabled (connection: close)

不知道如何启用编码或禁用保活或指定正文长度。

如果 Origin header 不存在或无效,82.157.123.54:9010/ajaxchattest 端点将响应 403 Forbidden 而不是 101 Switching Protocols。因此,要使其正常工作,只需将 Origin header 附加 well-formed 值即可:

val client = HttpClient(CIO) { install(WebSockets) }
client.webSocket("ws://82.157.123.54:9010/ajaxchattest", request = {
    header(HttpHeaders.Origin, "http://example")
}) {}