在JAX-RS(RestEasy)中,我想实现一个客户端过滤器,在发送请求之前修改标题,因此我不会为每次调用手动执行此操作。
目前我在接收端这样做是为了在到达资源之前拦截请求。
@Provider
@Priority(Priorities.AUTHENTICATION)
public class AuthenticationFilter implements ContainerRequestFilter {
@Override
public void filter(ContainerRequestContext requestContext) throws IOException {
// read header
}
现在我知道了(如果我错了,请纠正我):
在接收端,可以在请求到达资源并获取请求之前使用ContainerRequestFilter
。
但我想在客户端实现这一点,在请求发送到服务器之前修改标头。可以使用相同的服务器过滤器,还是有类似于客户端的东西?
答案 0 :(得分:5)
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()
}
}