当我使用代理客户端发送请求时,如果我得到某个响应,我希望能够修改该请求,然后为所有请求再次发送相同的请求。
通常我会做这样的事情:
BookStore proxy = JAXRSClientFactory.create("http://books", BookStore.class);
try
{
proxy.getBook("someId");
}
catch(WebApplicationException ex)
{
Response r = ex.getResponse();
if (r.getStatusCode() == 404)
{
proxy.getBook("anotherId");
}
}
但在这种情况下,我想对所有请求做一件共同的事情:如果我得到一个特定的 http 代码,修改一些 header 值,然后重试(可能对重试次数有限制)。
我还没有看到 cxf 代理客户端明确支持这一点的方式,我该如何着手实现它?
最佳答案
您需要编写一个拦截器来为每个请求执行此操作。 这里是示例代码和文档 http://cxf.apache.org/docs/jax-rs-filters.html
关于java - CXF 客户端代理如何处理客户端内的某些响应代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27067327/