在**被解析之前访问spring webclient响应体**

qyswt5oh  于 2021-07-23  发布在  Java
关注(0)|答案(0)|浏览(307)

我有一个url调用响应编码问题。
因此,在spring的webclient将主体响应转换为string对象之前,我需要访问原始主体响应,以使用正确的编码对其进行解析。所以,就在之前:

<execution>.flatMap(servletResponse -> {
      Mono<String> mono = servletResponse.bodyToMono(String.class);
  }

我需要访问原始url调用响应;我想在“平面图”之前。
所以。。。我一直在看spring文档中的“编解码器”,但是。。。所以;即使是测试,我也有:
mywriter是一个示例: EncoderHttpMessageWriter .
myreader是一个示例: DecoderHttpMessageReader .
mywriter处理mydecoder,一个 Decoder .
myreader处理myencoder,myencoder的一个示例 Encoder .
根据关于编解码器的spring文档;以及使用webclient builder的两个选项进行测试:

myWebClientBuilder = WebClient.Builder;    // provided by Spring Context,
myWebClientBuilder = WebClient.builder();  // "by hand"

因此,代码的相关部分看起来是这样的(即使使用 register 以及 registerWithDefaultConfig ):

WebClient.builder().codecs(consumer -> {
        consumer.customCodecs().register(myWriter.getEncoder());
        consumer.customCodecs().register(myWriter);
        consumer.customCodecs().register(myReader.getDecoder());
        consumer.customCodecs().register(myReader);
    })
    .build();

显示编解码器加载,并调用内部基本方法:
canDecode canEncode canRead canWrite getDecodableMimeTypes getDecoder getEncodableMimeTypes getEncoder 但是。。。没有一个人 read / write ... Mono<T> / Flux<T> 方法。还有什么可以用来配置编解码器以正确的编码解析传入的响应吗?
响应是一个字符串;一种老式的字符串,所有数据字段都在一行中,以后将根据字段的位置和长度规则对其进行解析;与json或jackson无关。
有没有其他更好的方法来执行此预操作?
非常感谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题