如何配置媒体类型为“ application / x-ndjson”的spring-5“ webclient(带有码头连接器)” webflux

问题描述 投票:1回答:1

我正在尝试访问其余端点,该端点将返回媒体类型为“ application / x-ndjson”标头的响应。如何在Spring 5 Webclient中使用此端点?如果我在Spring 5 WebClient中将媒体类型设置为“ application / stream + json”,是否可以使用?

java spring webclient mime-types spring-webflux
1个回答
0
投票

您应该能够使用您要支持的所有媒体类型(包括此特定媒体类型)创建自己的Jackson2JsonDecoder

类似:

Jackson2JsonDecoder jsonDecoder = new Jackson2JsonDecoder(Jackson2ObjectMapperBuilder.json().build(), 
    new MimeType("application", "json"), new MimeType("application", "x-ndjson"));

然后在构建它时直接在WebClient中配置此解码器:

WebClient webClient = WebClient.builder().codecs(codecs -> codecs.defaultCodecs().jackson2JsonDecoder(jsonDecoder)).build();

如果您使用的是Spring Boot,则可以使用:

@Configuration
public class JsonConfiguration {

  @Bean
  public CodecCustomizer ndJsonCustomizer(ObjectMapper objectMapper) {
    Jackson2JsonDecoder jsonDecoder = new Jackson2JsonDecoder(objectMapper, 
        new MimeType("application", "json"), new MimeType("application", "x-ndjson"));
    return codecs -> codecs.defaultCodecs().jackson2JsonDecoder(jsonDecoder);
  }

}

将来,由于Spring Framework团队为considering ndjson support out-of-the-box to replace stream+json,因此您可能不需要这样做。

© www.soinside.com 2019 - 2024. All rights reserved.