Spring Cloud使用Feign实现Form表单提交的示例

网友投稿 501 2023-02-10


Spring Cloud使用Feign实现Form表单提交的示例

之前,笔者写了《使用Spring Cloud Feign上传文件》。近日,有同事在对接遗留的Struts古董系统,需要使用Feign实现Form表单提交。其实步骤大同小异,本文附上步骤,算是对之前那篇的补充。

添加依赖:

io.github.openfeign.form

feign-form

&lhttp://t;version>3.2.2

io.github.openfeign.form

feign-form-spring

3.2.2

Feign Client示例:

@FeignClient(name = "xxx", url = "http://itmuch.com/", configuration = TestFeignClient.FormSupportConfig.class)

public interface TestFeignClient {

@PostMapping(value = "/test",

consumes = {MediaType.APPLICATION_FORM_URLENCODED_VALUE},

produces = {MediaType.APPLICATION_jsON_UTF8_VALUE}

)

void post(Map queryParam);

class FormSupportConfig {

@Autowired

private ObjectFactory messageConverters;

// new一个form编码器,实现支持form表单提交

@Bean

public Encoder feignFormEncoder() {

return new SpringFormEncoder(new SpringEncoder(messageConverters));

}

// 开启Feign的日志

@Bean

public Logger.Level logger() {

return Logger.Level.FULL;

}

}

}

调用示例:

@GetMapping("/user/{id}")

public User findById(@PathVariable Long id) {

HashMap param = Maps.newHashMap();

param.put("username","zhangsan");

param.put("password","pwd");

this.testFeignClient.post(param);

return new User();

}

TZRhV

日志:

...[TestFeignClient#post] ---> POST http://baidu.com/test HTTP/1.1

...[TestFeignClient#post] Accept: application/json;charset=UTF-8

...[TestFeignClient#post] Content-Type: application/x-www-form-urlencoded; charset=UTF-8

...[Tehttp://stFeignClient#post] Content-Length: 30

...[TestFeignClient#post]

...[TestFeignClient#post] password=pwd&username=zhangsan

...[TestFeignClient#post] ---> END HTTP (30-byte body)

由日志可知,此时Feign已能使用Form表单方式提交数据。

参考文档

https://github.com/OpenFeign/feign-form

https://stackoverflow.com/questions/35803093/how-to-post-form-url-encoded-data-with-spring-cloud-feign


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:浅谈React高阶组件
下一篇:管理平台api接口配置(管理平台api接口配置要求)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~