【发布时间】:2017-06-12 00:59:32
【问题描述】:
FeignClient 是一个非常漂亮的工具,但不幸的是,如果您需要做一些与 Spring 之神的预期稍有不同的事情,那么您将受到伤害。
当前案例:我使用外部第三方 REST 服务,嗯,有趣关于 REST 的概念。特别是,如果您向他们发送正确的 JSON,他们会在正文中返回 HTTP 302 和 JSON。
不用说,FeignClient 真的,真的不喜欢这种恶作剧。我的界面:
@FeignClient(value = "someClient", configuration = SomeClientDecoderConfiguration.class)
public interface SomeClient {
@RequestMapping(method = RequestMethod.POST, path = "${someClient.path}",
produces = MediaType.APPLICATION_JSON_VALUE)
JsonOrderCreateResponse orderCreate(JsonOrderCreateRequest request, @RequestHeader("Authorization") String authHeader);
}
我已经有自定义配置和错误解码器,但这些仅适用于 HTTP 4xx 和 5xx。如果系统遇到302,它会这样结束:
http://pastebin.com/raw/cGKWc4yg
如何防止这种情况并强制 FeignClient 像 200 一样处理 302?
【问题讨论】:
标签: spring netflix-feign