当前位置: 首页 > 知识库问答 >
问题:

WebClient最大标头大小

闻人宜
2023-03-14

有什么方法可以配置响应的最大标头大小吗?

我从netty框架中得到以下错误:

io.netty.handler.codec.TooLongFrameException: HTTP header is larger than 8192 bytes.
    at io.netty.handler.codec.http.HttpObjectDecoder$HeaderParser.newException(HttpObjectDecoder.java:983)
    Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 

显然reactor为此添加了一个API,但我不知道在SpringWebFlux的WebClient中这是如何控制的。我正在使用以下版本

      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-webflux</artifactId>
        <version>2.3.2.RELEASE</version>
      </dependency>

有什么想法吗?

共有2个答案

漆雕兴平
2023-03-14

在Spring Boot应用程序中,最大HTTP头大小使用以下配置:

server.max-http-header-size=65536

我发现这个解决了Spring Cloud网关上的上述问题,所以值得一试。

贾兴学
2023-03-14

您可以配置反应器的反应器。内蒂。http。客户HttpClient具有自定义的maxHeaderSize,并将此预配置的HttpClient插入您的WebClient实例中。

HttpClient httpClient =
    HttpClient.create().httpResponseDecoder(spec -> spec.maxHeaderSize(32 * 1024));

WebClient webClient =
    WebClient.builder().clientConnector(new ReactorClientHttpConnector(httpClient))
    .build();
 类似资料:
  • 问题内容: 使用nodeJS v0.10.28,http请求中的标头内容的大小/长度是否受到限制? 让我解释: 我需要使用第三方供应商提供的休息服务。返回给我的数据在请求的标头中,主体通常为空(120个左右字符)。标头中的数据量从几个字符到几个100kb不等。 上面的代码对于较小的标头工作正常,但在on(’error’上失败,在较大的标头上显示“ Parse Error”消息。 删除on erro

  • 我如何在我的spring web应用程序中解决这个问题? 我已经通过这个线程请求标题太大

  • 我在apache camel中定义了restendpoint(在karaf中运行),我收到了非常大的(>8500)头。Jetty抛出431状态代码(请求头字段太大)。是否有可能避免检查头的大小(只是暂时的)或改变限制?我是这样使用jetty的:

  • 我有一个应用程序向微服务发送请求。在标题中有一个JWT标记,它变大了,我得到了这个错误 我发现您可以在yml配置文件中增加标头的最大允许大小 但我还是得到了同样的结果。我正在使用Spring 2.2.6

  • 问题内容: 所以基本上我正在生成随机的10000个IP地址,我想存储在HashSet中找到的所有那些IP地址,但是根据我的计算,发现了大约6000个IP地址,但是在HashSet中仅存储了700个IP地址?HashSet在存储String方面是否有任何限制。任何建议将不胜感激。 问题答案: 就您而言,没有限制(限制是数组的最大大小,即2 ** 31)。 但是,仅存储 唯一 值,因此我的猜测是您仅生

  • 这听起来可能像是JavaFX ImageView设置的最大大小的重复,但它是不同的。 我想限制ImageView的最大大小。不幸的是,设置ImageView大小的唯一方法似乎是fitWidth和fitHeight,但是如果图像小于配合值,则会放大图像。 我尝试将fitWidth/fitHeight设置为0/0,并将ImageView包装到设置了maxWidth的窗格中-没有成功(图像以原始大小显示