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")
}) {}
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")
}) {}