Java 我如何使用Jackson编码假的HTTP GET请求参数?
我不太会装腔作势。我的目标是通过HTTP使用Jackson编码器/解码器在客户端之间进行通信。为此,我使用了以下配置:Java 我如何使用Jackson编码假的HTTP GET请求参数?,java,spring,jackson,feign,Java,Spring,Jackson,Feign,我不太会装腔作势。我的目标是通过HTTP使用Jackson编码器/解码器在客户端之间进行通信。为此,我使用了以下配置: @Configuration protected static class JacksonFeignConfiguration { @Bean public Decoder feignDecoder() { return new JacksonDecoder(); } @Bean public Encoder feignEncoder() {
@Configuration
protected static class JacksonFeignConfiguration {
@Bean
public Decoder feignDecoder() {
return new JacksonDecoder();
}
@Bean
public Encoder feignEncoder() {
return new JacksonEncoder();
}
}
虽然这似乎是格式化请求体,但它并没有格式化请求参数(使用@RequestParam)。这些是使用格式不正确的toString()方法意外创建的
如何确保请求参数也使用Jackson格式化。这是关键,因为我需要在GET请求中包含筛选条件对象的列表
目前,我已经解决了这个问题,将filter-criteria-object-toString()方法更改为返回一个JSON字符串,并编写一个匹配的参数解析器来解码该字符串
这是唯一的方法还是可以通过配置实现自动化?需要在FaignClient接口中设置此配置类
@FeignClient(value = "client", configuration = JacksonFeignConfiguration.class)
public interface YourClient{
//Your mappings
}
我这样做了,但是GET请求上的请求参数没有被编码为JSON,只有请求/响应体。