Spring Boot / FeignClient:POST Json主体

a8jjtwal  于 2023-01-05  发布在  Spring
关注(0)|答案(1)|浏览(252)

我目前尝试实现一个对后端的POST调用,这需要我将json作为主体进行POST。
现在我面临的问题是,Feign没有将带注解的Body传递到后端,而只传递空数据。
只要我添加了一个@Param或Map,这些值就会被传递,客户机就会正常工作。
为了增加可读性,我更喜欢用Body注解方法,并从配置中获取值,而不是将它们作为方法参数传递。
以下示例应根据Feign文档工作:

@RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
@Headers("Content-Type: " + MediaType.APPLICATION_JSON_VALUE)
@Body("%7B\n"
  + "  \"user\": \"${logintoken.user}\",\n"
  + "  \"pwd\": \"${logintoken.password}\",\n"
  + "%7D")
String getLoginToken();
8ehkhllq

8ehkhllq1#

这是一个已知漏洞:
https://github.com/OpenFeign/feign/issues/503
如果你需要主体,试试Unirest。不是声明性的,而是一个构建器。

相关问题