【问题标题】:Karate WebSocket connection failed due to extension negotiation error [duplicate]由于扩展协商错误,空手道 WebSocket 连接失败 [重复]
【发布时间】:2021-04-30 07:26:53
【问题描述】:

使用karate.webSocket() 连接到 WebSocket 服务器时出现以下异常:

org.graalvm.polyglot.PolyglotException: karate.io.netty.handler.codec.CodecException: invalid WebSocket Extension handshake for "permessage-deflate; server_no_context_takeover; client_no_context_takeover"
- com.intuit.karate.http.WebSocketClient.<init>(WebSocketClient.java:144)
- com.intuit.karate.core.ScenarioEngine.webSocket(ScenarioEngine.java:731)
- com.intuit.karate.core.ScenarioBridge.webSocket(ScenarioBridge.java:861)

服务器响应有标头

Sec-WebSocket-Extensions: permessage-deflate; server_no_context_takeover; client_no_context_takeover

根据规范https://www.rfc-editor.org/rfc/rfc7692#section-7.1.1.1,服务器可以将其包含在响应标头中。

尝试在options 中指定相同的标头,但仍然失败。

有没有办法解决这个问题?

【问题讨论】:

    标签: karate


    【解决方案1】:

    这当然可能是我们还不支持的情况。如果你能遵循这个过程,那就太好了,希望你能找到一个公共端点来模拟或尝试创建一种本地方式 - 最好是通过 java / netty 或者你可以使用一些 JS lib 等,如果这样更方便的话。

    说明:https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue

    当然,如果您也可以提供指针或 PR,那就没有了。以下是过去类似对话的示例:Is there a way to use custom headers when opening WebSocket connection?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-09
      • 1970-01-01
      • 2016-09-18
      • 2023-02-25
      相关资源
      最近更新 更多