我正在使用JAX-RS 1.0。在处理请求之前,服务器会验证是否存在自定义HTTP标头。
我想为JAX-RS客户端做一些类似AOP的行为,它会自动为每个请求添加HTTP标头。
JAX-RS 1.0是否支持出站客户端拦截器?我在文档中找不到任何提及它。另一种方法是我编写一个特定于CXF的出站拦截器......谢谢!
答案 0 :(得分:1)
使用JAX-RS 1.0无法做到这一点。我使用了CXF拦截器。
答案 1 :(得分:1)
您可以编写@PreMatching拦截器
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerRequestFilter;
import javax.ws.rs.container.PreMatching;
import java.io.IOException;
@PreMatching
public class ContentTypeFilter implements ContainerRequestFilter {
@Override
public void filter(ContainerRequestContext requestContext)
throws IOException {
requestContext.getHeaders().putSingle("Content-Type", "application/json");
}
}
答案 2 :(得分:0)
嗯,JAX-RS是一个API,因此应该能够为它提供自己的实现。如何实施javax.ws.rs.client.ClientFactory,并从javax.ws.rs.client.Client
返回预先配置的getClient()
。只要您的类与您正在使用的JAX-RS实现没有冲突,就可以正常工作。