Gatling: WebSocketHandshakeException: 握手响应无效 getStatus: 400 错误请求
2020-3-10 7:9:13
收藏:0
阅读:118
评论:2
我尝试打开 WebSocket 连接,但是遇到了错误:
val openConnection = exec( ws("Connect -> WS").wsName("user").connect("wss://socket.develop.test.com?access_token=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9"))
然后,我收到了以下响应:
09:49:53.343 [DEBUG] i.g.h.c.i.DefaultHttpClient - 为 wss://socket.develop.test.com?access_token=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9 安装 SslHandler
09:49:53.381 [DEBUG] i.n.h.s.u.InsecureTrustManagerFactory - 接受服务器证书:CN=Kubernetes Ingress Controller Fake Certificate, O=Acme Co
09:49:53.418 [DEBUG] i.n.h.c.h.w.WebSocketClientHandshaker13 - WebSocket 版本 13 客户端握手密钥:YndmXwIGgZseWyRlmXBoyw==,预期响应:H2YGNn6p+DyLyudnc1JCluHjj7E=
09:49:53.419 [DEBUG] i.g.h.c.i.WebSocketHandler - ctx.write msg=DefaultFullHttpRequest(decodeResult: success, version: HTTP/1.1, content: EmptyByteBufBE)
GET ?access_token=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
HTTP/1.1
accept: */*
upgrade: websocket
connection: upgrade
sec-websocket-key: YndmXwIGgZseWyRlmXBoyw==
host: socket.develop.test.com
origin: https://socket.develop.test.com
sec-websocket-version: 13
09:49:53.423 [DEBUG] i.n.h.s.SslHandler - [id: 0xfa53644a, L:/192.168.150.134:54082 - R:socket.develop.test.com/78.47.16.48:443] 握手成功:TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
09:49:53.450 [DEBUG] i.g.h.c.i.WebSocketHandler - 读取 msg=HttpObjectAggregator$AggregatedFullHttpResponse(decodeResult: success, version: HTTP/1.1, content: CompositeByteBuf(ridx: 0, widx: 163, cap: 163, components=1))
HTTP/1.1 400 Bad Request
Server: openresty/1.15.8.1
Date: Tue, 10 Mar 2020 06:49:53 GMT
Content-Type: text/html
Content-Length: 163
Connection: close
09:49:53.452 [DEBUG] i.g.h.c.i.WebSocketHandler - 崩溃
io.netty.handler.codec.http.websocketx.WebSocketHandshakeException: 握手响应无效 getStatus: 400 错误请求
at io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker13.verify(WebSocketClientHandshaker13.java:267)
在 gatling.conf 中,我也设置了以下内容:
enableSni = false
useOpenSsl = false
enableHostnameVerification = false
如果我尝试使用任何 WebSocket 客户端(如 SmartWebsocketClient)打开连接,一切正常,但是我无法通过 gatling 打开连接。有什么想法可以解决吗?
点赞
用户5269205
这是 Netty 的一个 bug,在路径为空时,它不能正确地计算 WebSocket 握手请求的 URL。 我刚为此贡献了一个补丁:https://github.com/netty/netty/pull/10095。 Gatling 中的同类问题:https://github.com/gatling/gatling/issues/3876
2020-03-10 09:31:42
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

wss://domain?access_token...不是一个有效的URL。路径部分必须以/开头,而不是?。这意味着请求无效,这可能解释了400 Bad Request的响应。URL 至少必须是
wss://domain/?access_token...(即在?前有/),但服务器可能也不期望 URL 的其余部分。请检查服务器的实际要求。