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

far*_*eed 0 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
    }
Run Code Online (Sandbox Code Playgroud)

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

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

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

小智 5

您必须将ClientRequestFilter注册到您的客户端

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() 
    }
}  
Run Code Online (Sandbox Code Playgroud)