【问题标题】:Include POST data as request params using Feign使用 Feign 将 POST 数据作为请求参数包含在内
【发布时间】:2016-02-05 00:50:37
【问题描述】:

假设我有一个类似下面的 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 以编程方式添加参数,但它们最终也都出现在请求正文中。

有什么办法可以在 feign 中做这样的事情?

【问题讨论】:

    标签: java netflix-feign


    【解决方案1】:

    你可以这样使用:

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

    它需要jdk1.8

    【讨论】:

    • 虽然这段代码 sn-p 可以解决问题,但including an explanation 确实有助于提高帖子的质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
    猜你喜欢
    • 1970-01-01
    • 2016-04-24
    • 1970-01-01
    • 2016-06-04
    • 2018-10-15
    • 1970-01-01
    • 2017-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多