使用Feign将POST数据作为请求参数包括在内

时间:2016-02-05 00:50:38

标签: java netflix-feign

假设我有一个类似于以下的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以编程方式添加params,但它们也最终都在请求体中。

任何方式在假装中做这样的事情?

1 个答案:

答案 0 :(得分:0)

你可以像这样使用:

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

它需要jdk1.8