![](/img/trans.png)
[英]How do I force the HTTP Request Connector to use a certain Content-Type?
[英]Force feign to use a specific content-type
我正在使用 Feign 在远程 Java 接口上进行 REST 调用。 接口定义如下:
@Produces({"text/xml", "application/json"})
由于JAXRSContract
简单发送data.template().header("Accept", serverProduces);
服务器选择用xml
有效载荷回答。
在这种情况下,有什么办法可以强制 Feign 请求 `JSON 有效负载?
您可以使用拦截器覆盖标头:
Feign.builder().setInterceptor(requestTemplate -> {
Map<String, Collection<String>> map = new HashMap<>(requestTemplate.headers());
map.put("Accept", Collections.singleton("application/json"));
requestTemplate.headers(null);
requestTemplate.headers(map);
});
方法requestTemplate.headers(map)
看起来设计得很糟糕,如果你传递了一个有效的 map,它的值会被添加到内部 header map; 如果您通过null
而不是内部 header map 被重置。 这就是为什么你需要调用它两次。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.