Добавьте пользовательский DataBufferDecoder для LZ4 в Spring WebClient - PullRequest
0 голосов
/ 29 апреля 2019

Мне нужно декодировать получение результатов с сервера, используя org.springframework.web.reactive.function.client.WebClient, который закодирован в алгоритме сжатия LZ4. Как я могу это сделать?

Я нашел одну из библиотек netty - io.netty.handler.codec.compression.Lz4FrameDecoder. Но я не нашел способа применить его к WebClient

Вот моя конфигурация клиента -

private val client = WebClient.builder()
        .baseUrl(config.baseUrl)
        .uriBuilderFactory(DefaultUriBuilderFactory(config.baseUrl).apply {
            encodingMode = DefaultUriBuilderFactory.EncodingMode.VALUES_ONLY
        })
        /*.clientConnector(ReactorClientHttpConnector(HttpClient.create().tcpConfiguration { tcpClient ->
            tcpClient.bootstrap { b ->
                BootstrapHandlers.updateLogSupport(
                    b,
                    LOGGING_HANDLER
                )
            }
        }))*/
        .defaultHeaders { headers ->
            headers.setBasicAuth(config.username, config.password)
        }
        .build()
...