Java 使用FIGN将POST数据包含为请求参数

Java 使用FIGN将POST数据包含为请求参数,java,netflix-feign,Java,Netflix Feign,假设我有一个类似以下的API,PersonDto是一个简单的pojo: @RequestLine("POST /request/path") String createPerson(PersonDto dto); 当我调用这个API时,feign在请求体中包含pojo的所有属性(到目前为止,这是标准的和良好的),但我在另一端有一个遗留应用程序,它希望POST数据作为请求参数包含。我知道我可以做一些事情,比如: @RequestLine("POST /request/path?id={id}&a

假设我有一个类似以下的API,
PersonDto
是一个简单的pojo:

@RequestLine("POST /request/path")
String createPerson(PersonDto dto);
当我调用这个API时,feign在请求体中包含pojo的所有属性(到目前为止,这是标准的和良好的),但我在另一端有一个遗留应用程序,它希望POST数据作为请求参数包含。我知道我可以做一些事情,比如:

@RequestLine("POST /request/path?id={id}&name={name}&...")
但是如果我有太多的情妇,那就太难看了

我尝试使用拦截器和
RequestTemplate.query
以编程方式添加参数,但它们最终都会出现在请求正文中

有什么办法可以用假象做这样的事吗?

你可以这样使用:

@RequestLine("POST /request/path")
@Headers("Content-Type: application/json")
String createPerson(PersonDto dto);
它需要jdk1.8,您可以这样使用:

@RequestLine("POST /request/path")
@Headers("Content-Type: application/json")
String createPerson(PersonDto dto);

它需要jdk1.8

,而这个代码片段可能会解决这个问题,真正有助于提高文章的质量。请记住,您将在将来回答读者的问题,而这些人可能不知道您的代码建议的原因。虽然此代码片段可以解决问题,但确实有助于提高您文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。