首页 > 解决方案 > Spring Boot / FeignClient:POST Json 正文

问题描述

我目前尝试实现对后端的 POST 调用,这需要我将 json 作为正文进行发布。

现在我面临的问题是 Feign 没有将带注释的 Body 传递给后端,而只是将空数据传递给后端。

只要我添加一个@Param或一个地图,这些值就会被传递,并且客户端工作正常。

为了提高可读性,我更喜欢用 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();

标签: spring-bootspring-cloud-feign

解决方案


这是一个已知的错误:

https://github.com/OpenFeign/feign/issues/503

如果您需要身体,请尝试 Unirest。不是声明式的,而是一个构建器。


推荐阅读