java - CXF 客户端代理如何处理客户端内的某些响应代码

标签 java web-services proxy cxf

当我使用代理客户端发送请求时,如果我得到某个响应,我希望能够修改该请求,然后为所有请求再次发送相同的请求。

通常我会做这样的事情:

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/

相关文章:

PHP - 代理脚本

java - 结果集为空,虽然 sql 查询没问题

java - 项目单击监听器不适用于自动滚动回收器 View

web-services - 在 ROR 3 中公开 Web 服务 API

python - 如何在 Tornado 中管理 nohup.out 文件?

web-services - 使用 JAX-WS : Use wsimport support for asynchrony or roll my own? 的异步 Web 服务调用

proxy - 要使用哪个 Amazon EC2 实例?

.net - .NET 中有什么方法可以以编程方式监听 HTTP 流量吗?

java - 从 Hadoop 中的 Jar 中获取文件资源

java - Android 中的联系人列表排序