Redirect JAX-RS:客户端:在执行重定向之前拦截重定向

Redirect JAX-RS:客户端:在执行重定向之前拦截重定向,redirect,jersey,jax-rs,Redirect,Jersey,Jax Rs,我试图在JAX-RS(Jersey)客户端上实现“重定向处理程序/过滤器”。我们期望在Jersey进行实际重定向之前调用此处理程序 到目前为止,我能找到的是禁用跟随重定向并实现自己的重定向过滤器,但这意味着我必须实现完整的重定向处理,包括处理循环或其他边缘情况,我正试图避免并希望依赖于Jersey实现 在实际重定向发生之前,我只想在请求中添加/更改头或其他参数。此外,在让其他重定向按原样工作的同时,我们只需要操纵很少的重定向 禁用重定向: ClientBuilder

我试图在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());

是否有任何指针或引用可用于拦截重定向?

不幸的是,重定向发生在比Jersey更低的级别。较低级别上有连接器,这些连接器处理重定向。默认连接器使用HttpUrlConnection。将Jersey设置为不遵循重定向的属性仅转发到HttpUrlConnection(可配置为遵循或不遵循重定向),该连接处理重定向。遗憾的是,重定向发生在比Jersey更低的级别。较低级别上有连接器,这些连接器处理重定向。默认连接器使用HttpUrlConnection。您使用Jersey设置为不遵循重定向的属性只是转发到HttpUrlConnection(可配置为遵循或不遵循重定向),该连接处理重定向。