spring cloud:feign 使用form表单 POST数据
问题来源:调用接口发现以POST请求form表单发送数据
这是要调的接口:
FelignClient 如下:
@Component
@FeignClient(value = "oms", url = "${rbox.after-sales-order.feign.url.oms}", fallback = AsOrderReasonFeignClientFallback.class, configuration = FeignClientFormPostConfig.class)
public interface AsOrderReasonFeignClient {
@PostMapping(value = "/v0.2/as_aftersales/get_reason_address", consumes = {MediaType.MULTIPART_FORM_DATA_VALUE})
ServerResponse getReasonAddress(Map<String, ?> userId);
}
注册FeignClientFormEncoderCofig 组件应用上下文:
@Component
public class FeignClientFormPostConfig {
// 这里会由容器自动注入HttpMessageConverters的对象工厂
@Autowired
private ObjectFactory<HttpMessageConverters> messageConverters;
/**
* new一个form编码器,实现支持form表单提交
*/
@Bean
Encoder feign