spring 使用Java Web客户端时HTML响应无效

x33g5p2x  于 2023-01-24  发布在  Spring
关注(0)|答案(1)|浏览(70)

我在Spring中使用Reactive Webclient,在确定为什么从GET请求中得到以下响应格式时遇到了一些困难:

�\jj��T{�8��?�t(O�"V$�@��)���5�����~?��J�t"��   ��EEΕ7�b��,�u�i�=��k���3�ӡ�������m,��ꔁu�T낙*��{�DZ�l�`����{� ��M��+mB)��E{�UtG���ʘJ#ؠ�]j<u�?6�`h���.���𢚾�n��?�ʋ*��#%�w'<L��d�Ly����R�>���$�O�����—o�}�� �����v���{���?����r�;

这是我在以下请求中使用的代码:

return webClient
                .get()
                .uri(URI.create(uri))
                .accept(MediaType.TEXT_HTML, MediaType.APPLICATION_XHTML_XML)
                .acceptCharset(StandardCharsets.UTF_8, StandardCharsets.ISO_8859_1)
                .header("Accept-Encoding", "gzip, deflate, br")
                .retrieve()
                .bodyToMono(String.class);

WebClient设置如下所示:

HttpClient client = HttpClient.create()
                .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, connectTimeout)
                .followRedirect(true)
                .secure()
                .responseTimeout(Duration.ofMillis(readTimeoutMillis));

        return WebClient.builder()
                .clientConnector(new ReactorClientHttpConnector(client))
                .build();

我错过了什么?

7xllpg7q

7xllpg7q1#

看起来响应是编码的,可能是gzip格式的,特别是您已经向服务器声明的响应,您可以使用它来解码gzip、deflate和br编码
Accept-Encoding: gzip,deflate,br
您可以删除.header("Accept-Encoding", "gzip, deflate, br")并查看服务器是否愿意向您发送纯文本响应。

相关问题