我正在尝试访问其余端点,该端点将返回媒体类型为“ application / x-ndjson”标头的响应。如何在Spring 5 Webclient中使用此端点?如果我在Spring 5 WebClient中将媒体类型设置为“ application / stream + json”,是否可以使用?
您应该能够使用您要支持的所有媒体类型(包括此特定媒体类型)创建自己的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,因此您可能不需要这样做。