Selenium 删除“;TooLongFrameException“;限制(http)

Selenium 删除“;TooLongFrameException“;限制(http),selenium,http,netty,browsermob-proxy,Selenium,Http,Netty,Browsermob Proxy,我正在使用selenium和browsermob代理,最终由“netty all”提供支持,以访问一个站点(在我的控制之外),该站点在身份验证过程中提供了大量的头文件。代理失败,出现一个净错误: io.netty.handler.codec.TooLongFrameException:HTTP头大于16384字节,版本:HTTP/1.1 我需要从netty alljar中删除我的browsermob代理所依赖的所有这些限制,可伸缩性、性能和内存保护在这个用例中是不相关的 克隆回购协议后,我改变了

我正在使用selenium和browsermob代理,最终由“netty all”提供支持,以访问一个站点(在我的控制之外),该站点在身份验证过程中提供了大量的头文件。代理失败,出现一个净错误:

io.netty.handler.codec.TooLongFrameException:HTTP头大于16384字节,版本:HTTP/1.1

我需要从
netty all
jar中删除我的browsermob代理所依赖的所有这些限制,可伸缩性、性能和内存保护在这个用例中是不相关的

克隆回购协议后,我改变了:

  • WebSocket00FrameDecoder
    中的默认最大帧大小(io.netty.handler.codec.http.websocketx)

  • HttpObjectDecoder
    io.netty.handler.codec.http中的默认构造函数

在适当的情况下设置为
Integer.MAX_值

然而,即使有了这些新的设置,它仍然在使用中抛出“HTTP头大于16384字节”

  • 这个16384限额还能从哪里来
  • 如何在保留全部功能的同时删除它(以可接受的效率/内存使用等成本)

  • 达成了解决方案,它远不是优雅的,但它是有效的-我的用例是低效/容错的,所以请小心使用

  • 我不会用Maven的诡计来污染这个答案,因为它们不是严格相关的,但是,请注意,
    netty all
    默认情况下从Maven回购中提取其所有组件。要更改
    netty-all
    内部,您需要生成所需组件的jar(
    handler.codec.http
    ,在本例中),然后更改
    pom.xml
    以拉入修改后的jar。有几种方法可以做到这一点,唯一对我有效的方法是使用
    mvn install
    将jar放置在本地.m2 repo中:

    mvn安装:安装文件-Dfile=netty-codec-http-4.1.25.Final-SNAPSHOT.jar-DgroupId=io.netty-DartifactId=netty-codec-http-Dversion=4.1.25.Final-SNAPSHOT-dpackage=jar

    然后构建
    nettyall
    以获得最终的jar,然后将其用于您自己的项目中,而不是原始项目中

  • 修改文件以从http操作中删除大小限制:

    • all/pom.xml
    • 编解码器http/pom.xml
    • 编解码器http/src/main/java/io/netty/handler/codec/http/HttpObjectDecoder.java
    • 编解码器http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocket00FrameDecoder.java
    • 编解码器http/src/test/java/io/netty/handler/codec/http/HttpRequestDecoderTest.java
    • 编解码器http/src/test/java/io/netty/handler/codec/http/HttpResponseDecoderTest.java
  • 除了对Integer.MAX_值设置各种大小限制外,我还注释了相关测试,以确保Maven“package”命令成功生成jar

  • 此处提供了更改的
    git diff

    您可以将其作为补丁应用于netty commit 04fac00c8c98ed26c5a75887c8e7e53b1e1b68d0


  • 请添加完整的stracktrace