问题描述
我想在我的项目中使用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
。