Openfeign如何将@Headers批注与不同的产生和消费类型一起使用?

问题描述

我想在我的项目中使用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)

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

解决方法

我想我找到了答案。我不知道我怎么想念它。 @Headers内容应如下所示:

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

在具有Accept标头的情况下,我告诉伪装客户端生成JSON(在我的情况下,它是serviceType传递到方法中)并消耗text/plain