【问题标题】:Spring webclient add httpmessageconverterspring webclient 添加httpmessageconverter
【发布时间】:2023-01-09 07:08:43
【问题描述】:
我想将 spring resttemplate 转换为 spring webclient。
在 spring resttemplate 中我们可以添加消息转换器
How can I tell RestTemplate to POST with UTF-8 encoding?
restTemplate.getMessageConverters().add(0, new StringHttpMessageConverter(StandardCharsets.UTF_8));
我怎样才能在 spring webclient 中做到这一点?我想将消息转换器添加到 webclient
【问题讨论】:
标签:
spring
spring-boot
spring-webflux
resttemplate
spring-webclient
【解决方案1】:
在 WebClient 中,您可以使用 WebClient.builder().codecs() 设置自定义编解码器(编码器、解码器、HttpMessageReader、HttpMessageWriter)
这是一个例子:
WebClient.builder()
.codecs(
clientCodecConfigurer ->{
// .defaultCodecs() set defaultCodecs for you
// clientCodecConfigurer.defaultCodecs();
// You can customize an encoder based on the defualt config.
// clientCodecConfigurer.defaultCodecs().jackson2Encoder(...)
// Or
// use customCodecs to register Codecs from scratch.
clientCodecConfigurer.customCodecs().register(new Jackson2JsonDecoder());
clientCodecConfigurer.customCodecs().register(new Jackson2JsonEncoder());
}
).build();