Feign - 独立使用 - 替代HttpClient

参考:https://github.com/OpenFeign/feign(官网)https://www.cnblogs.com/crazymakercircle/p/10243749.htmlio.github.openfeign
https://www.jianshu.com/p/3d597e9d2d67https://cloud.tencent.com/developer/article/1588499https://blog.csdn.net/f641385712/article/details/104211659
Feign是spring cloud中服务消费端的调用框架,通常与ribbon,hystrix等组合使用。是使用过cloud 之后感觉 ,feign 比较好用,研究返现 fegin 可以单独来使用。
com.netflix.feign 从2018 年后闭源,由 io.github.openfeign 来维护。Feign - 独立使用 - 替代HttpClient - 图1

我的github:https://github.com/tianliuzhen/boot-devs/tree/master/wechat
1、步骤一https://mvnrepository.com/artifact/io.github.openfeign/feign-jackson
jackson 代替 gson,为了方便 spring()进行mvc 解析

2、配置调用

3、单元测试调用坑:调用的接口的返回值注意对应 eg: int =》 int ,勿 int =》String,否则无法解析
options方法指定连接超时时长及响应超时时长,retryer方法指定重试策略,target方法绑定接口与服务端地址。返回类型为绑定的接口类型。decoder 指的是返回值(出参) 解码encoder 指的是参数(入参) 解码注意:如果定义 出参 是Object必须要 设置 如果定义 出参 是 String 必须要 设置出参类型不能是 基本数据类型及包装类(int、integer),必须要是 String 或者是 Object

4、采坑# 1、原生Feign的编码器Encoder 当方法参数没有标注@Param注解时,编码器会起作用。 eg: 如果方法参数并没有被模版使用,那么他会被收集放到一个Map里,然后交给Encoder处理。形如这个例子: 这里的username和password均没有被@RequestLine使用到,所以它会被收集起放进一个Map里(LinkedHashMap)交给编码器处理。
使用的时候就会报错