WebClient 最大标头大小

Dad*_*ism 3 response-headers reactor-netty spring-webflux

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

我从 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: 
Run Code Online (Sandbox Code Playgroud)

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

      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-webflux</artifactId>
        <version>2.3.2.RELEASE</version>
      </dependency>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Akh*_*dla 6

您可以将反应器配置reactor.netty.http.client.HttpClient为自定义maxHeaderSize并将其插入HttpClient到您的 WebClient 实例中。

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

WebClient webClient =
    WebClient.builder().clientConnector(new ReactorClientHttpConnector(httpClient))
    .build();
Run Code Online (Sandbox Code Playgroud)