我正在使用 JAX-RS 1.0。服务器在处理请求之前验证是否存在自定义 HTTP 标头。
我想为 JAX-RS 客户端创建某种类似于 AOP 的行为,它会自动将 HTTP 标头添加到每个请求中。
JAX-RS 1.0 是否支持出站客户端拦截器?我在文档中找不到任何提及。另一种方法是我编写一个特定于 CXF 的出站拦截器......谢谢!
使用 JAX-RS 1.0 没有很好的方法来做到这一点。我使用了 CXF 拦截器。
你可以写一个@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");
}
}
嗯,JAX-RS 是一个 API,所以应该能够为它提供你自己的实现。如何实现javax.ws.rs.client.ClientFactory并javax.ws.rs.client.Client
从getClient()
. 只要您的类与您正在使用的 JAX-RS 实现不冲突,就应该可以正常工作。