gpt4 book ai didi

java - (java) 使用 HtmlUnit 监听 websocket 消息

转载 作者:行者123 更新时间:2023-12-02 02:56:28 25 4
gpt4 key购买 nike

我正在尝试监听特定页面上的 websocket 消息。

HtmlUnit 似乎支持 WebSockets,但我找不到任何文档/教程,甚至找不到“是否可以使用 htmlUnit 拦截 websocket 数据”的答案?

我已经尝试过的:

try (final WebClient webClient = new WebClient(BrowserVersion.CHROME)) {

webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setCssEnabled(false);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());

final HtmlPage page = webClient.getPage("url");
webClient.waitForBackgroundJavaScript(10 * 60 * 1000);
}

我收到一条有关 websocket 连接的 INFO 消息和此错误:

INFO: Opening transport: xhr-streaming  url:https://stream71.forexpros.com:443/echo/340/3exyl8ko  RTO:357
Mar 23, 2017 5:40:07 PM com.gargoylesoftware.htmlunit.HttpWebConnection downloadContent
WARNING: Connection was closed while reading from stream.

最佳答案

到目前为止,仅 JavaScript 端支持 WebSocket class ,并且 HtmlUnit 没有 API 来控制它。

目前的实现是基本的,我会看看是否有办法拦截来自 Jetty Websocket client 的流量,可以添加到公共(public)API中。

更新:

WebClient 现在有 getInternals().addListener()。调用listener.created(WebSocket)后,您应该使用WebSocketListener调用webSocket.setWebSocketListener()

测试用例是here .

此功能包含在 latest build 中.

关于java - (java) 使用 HtmlUnit 监听 websocket 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42982495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com