1

我想在我的项目中使用 Feign 客户端,但有些端点text/plain在使用时会产生application/json. 现在我有这样的东西。方法是生产plain/text和消费application/json。有没有办法解决它?请注意,这不是 Spring 引导应用程序。这只是一个 Java/Maven 项目。

@Headers("Content-Type: text/plain")
@RequestLine(value = "POST /containers/{id}/services")
String startService(@Param("id") String id, String serviceType);

在 Jaxrs 中,我们使用下面的标头来指定此方法或类使用的 mime 类型。

@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.TEXT_PLAIN)

我希望能够做同样的事情,但在 feign 客户端中没有生产或消费标头。只有@Headers 可以指定内容类型。我想知道这个注释Content-Type是用于消费和生产,还是仅用于消费,或者您是否可以为生产和消费指定不同的类型?

4

1 回答 1

2

@Headers 内容应如下所示:

@Headers({
  "Content-Type: application/json",
  "Accept: text/plain",
})

使用Accept标头,您告诉 feign 客户端生成JSON(在您的情况下,它被serviceType传递到方法中)并使用text/plain

于 2020-10-27T15:44:25.427 回答