JAX-RS客户端过滤器在将请求分派给服务器之前修改标头

时间:2016-05-25 06:32:21

标签: jax-rs resteasy

在JAX-RS(RestEasy)中,我想实现一个客户端过滤器,在发送请求之前修改标题,因此我不会为每次调用手动执行此操作。

目前我在接收端这样做是为了在到达资源之前拦截请求。

@Provider
@Priority(Priorities.AUTHENTICATION)
public class AuthenticationFilter implements ContainerRequestFilter {

    @Override
    public void filter(ContainerRequestContext requestContext) throws IOException {

        // read header
    }

现在我知道了(如果我错了,请纠正我):

在接收端,可以在请求到达资源并获取请求之前使用ContainerRequestFilter

但我想在客户端实现这一点,在请求发送到服务器之前修改标头。可以使用相同的服务器过滤器,还是有类似于客户端的东西?

1 个答案:

答案 0 :(得分:5)

您必须在ClientRequestFilter

中注册Client
Client client = ClientBuilder.newClient().register(MyFilter.class);

@Provider
public class MyFilter implements ClientRequestFilter {

    @Override
    public void filter(ClientRequestContext ctx) throws IOException {
        // modify header before send: ctx.getHeaders() 
    }
}