我正在尝试访问rest端点,它将返回带有mediatype "application/x-ndjson“头的响应。如何在Spring5 Webclient中使用这个端点?如果我在Spring5 WebClient中将媒体类型设置为“应用程序/流+json”,它会起作用吗?
发布于 2020-05-20 18:26:36
你应该能够用你想支持的所有媒体类型创建你自己的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。
https://stackoverflow.com/questions/61895751
复制相似问题