1、注册一个Encoder的Bean
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| @Configuration public class FeignClientFormPostConfig {
private ObjectFactory<HttpMessageConverters> messageConverters;
// new一个form编码器,实现支持form表单提交 // 注意这里方法名称,也就是bean的名称是什么不重要, // 重要的是返回类型要是 Encoder 并且实现类必须是 FormEncoder 或者其子类 @Bean public Encoder feignFormEncoder() { return new FormEncoder(new SpringEncoder(this.messageConverters)); }
@Autowired public void setMessageConverters(ObjectFactory<HttpMessageConverters> messageConverters) { this.messageConverters = messageConverters; }
}
|
2、改造Feign接口
1 2
| @PostMapping(value = "/test", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) RestResult<List<XXXVO>> test(Map<String, ?> formParams);
|
需要指定consumes,并且需要将入参改为map。map的key为form表单的key,value为表单key对应的值