spring cloud feign调用service的两种POST传值方式

1、 application/json
包引用
compile("org.springframework.cloud:spring-cloud-starter-openfeign")
feign端调用
@FeignClient(name = "dcv-service")
public interface DCVService {
    @PostMapping(value = "/dcvApi/dcvValidate")
    ViewData domainValidation(AuthInfo authInfo);
}
service端
@RequestMapping(value = "/dcvValidate", method = RequestMethod.POST)
@ResponseBody
public ViewData dcvValidate(@RequestBody AuthInfo authInfo) {
    ViewData viewData = dcvService.domainValidation(authInfo);
    return viewData;
}
2、 application/x-www-form-urlencoded
包引用
compile("org.springframework.cloud:spring-cloud-starter-openfeign")
compile group: 'io.github.openfeign.form', name: 'feign-form', version: '3.3.0'
compile group: 'io.github.openfeign.form', name: 'feign-form-spring', version: '3.3.0'

form表单配置

public class CoreFeignConfiguration {
    @Autowired
    private ObjectFactory<HttpMessageConverters> messageConverters;
    // new一个form编码器,实现支持form表单提交
    @Bean
    public Encoder feignFormEncoder() {
        return new SpringFormEncoder(new SpringEncoder(messageConverters));
    }
}
feign调用
@FeignClient(name = "dcv-service", configuration = CoreFeignConfiguration.class)
public interface DCVService {
    @PostMapping(value = "/dcvApi/dcvValidate", consumes = "application/x-www-form-urlencoded")
    ViewData domainValidation(Map<String, ?> authInfo);
}
service端
@RequestMapping(value = "/dcvValidate", method = RequestMethod.POST)
@ResponseBody
public ViewData dcvValidate(AuthInfo authInfo) {
    ViewData viewData = dcvService.domainValidation(authInfo);
    return viewData;
} 

参考:form-url-encode

注1: feign默认的是application/json的方式。

注2: 测试过程中出现 read time out异常,发现默认超时时间是1s,可以配置超时时间如下:

ribbon:
  ReadTimeout: 60000   #default=1000
  ConnectTimeout: 60000  #default=1000
  maxAutoRetries: 0 #调用失败的重试次数
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值