首页 > 解决方案 > JAX-RS:客户端:在遵循重定向之前拦截重定向

问题描述

我正在尝试在 JAX-RS(Jersey) 客户端实现“重定向处理程序/过滤器”。期望这个处理程序会在 Jersey 发生实际重定向之前被调用。

到目前为止,我可以找到禁用跟随重定向并实现自己的重定向过滤器,但这意味着我必须实现完整的重定向处理,包括处理循环或其他边缘情况,我试图避免并希望依赖 Jersey 实现。

我只想在实际重定向发生之前在请求中添加/更改标头或其他参数。此外,我们想要操纵的重定向很少,而让其他重定向按原样工作。

禁用重定向:

ClientBuilder
                .newBuilder()
                .withConfig(new ClientConfig(clientConfig))
                .property(ClientProperties.FOLLOW_REDIRECTS, false)
                .build();

示例重定向处理程序:

        Response resp = requestContext.getClient().target(responseContext.getLocation()).request()
                .method(requestContext.getMethod());
        responseContext.setEntityStream((InputStream) resp.getEntity());
        responseContext.setStatusInfo(resp.getStatusInfo());
        responseContext.setStatus(resp.getStatus());

是否有任何指针或参考可以用来拦截重定向?

标签: redirectjerseyjax-rs

解决方案


推荐阅读