Javafx webview http响应数据

blu*_*.gr 2 javafx webview

是否可以从webview中加载的页面中读取http请求和响应数据.我想要做的是在用户点击webview中页面内的链接后从响应中获取二进制数据.任何帮助或线索将不胜感激

jew*_*sea 5

创建您自己的URLStreamHandlerFactory通过初始化URL.setURLStreamHandlerFactory,其生成的URLStreamHandler用来包装标准的HTTP和HTTPS URLStreamHandlers转发之前拦截他们的流量.

"新的Java协议处理程序时代"白皮书中介绍了一些概念.

另一种选择是侦听WebEngine.location属性并打开与服务器的单独连接,以根据需要检索和处理二进制数据.这种方法的一个例子是柳树网络浏览器pdf处理代码.

  • 所以我的选择是通过 JVM 全局写入一次属性破解一个对类加载过程必不可少的核心机制……或者通过两次获取所有内容来使我的带宽加倍……我对 JavaFx WebView 了解得越多,就越多我怀疑它是由弗朗茨·卡夫卡写的 (2认同)
  • 这“是”一个很好的答案,我自己也已经做到了,并取得了一些成功。然而,对于 javafx 12 及更高版本,Web 引擎使用内部 http 实现,而不是 URLStreamHandlerFactory。您可以通过将“com.sun.webkit.useHTTP2Loader”系统属性设置为 false 来解决此问题,但尚不清楚这是否会成为长期可行的解决方案。 (2认同)