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/

相关文章:

java - 无法从 eclipse/Intellij 发送 API 请求

java - Camunda BPMN - 访问线程内的变量

android - 将电话联系人与 MySQL 数据库进行比较的有效方法是什么? (类似于 WhatsApp)

json - Microsoft 学术 API、知识图搜索 — ReferenceID 始终为空

java - jaxws-rt.jar 中的 "/com/sun/xml/ws/"包和 rt.jar 中的 "/com/sun/xml/internal/ws/"包有什么区别

javascript - 了解用于编写 cometd 服务器的 mod_proxy 和 Apache 2

node.js - nodejs中的转发代理

java - eclipse 中 Ctrl-f6 的对话框名称

java - Spring AOP : How to intercept inner class?

java - 从文本文件读取 xml 时缺少 "<"