使用CXF拦截器修改HTTP请求URI和HTTP请求方法

时间:2013-10-17 10:03:57

标签: http cxf httprequest interceptor

我想在HTTP客户端中使用CXF拦截器修改HTTP请求URI和HTTP请求方法。

我已经开发出类似这样的东西:

public class MyInterceptor extends AbstractPhaseInterceptor<Message> {    

    public MyInterceptor() {
        super(Phase.PRE_PROTOCOL);
    }

    public void handleMessage(Message message) {
            // this returns me correct path and method
            // String path = (String) message.getExchange().getOutMessage().get(Message.REQUEST_URI);
            // String method = (String) message.getExchange().getOutMessage().get(Message.HTTP_REQUEST_METHOD);

            // this does not work as expected
            String path = (String) message.get(Message.REQUEST_URI);
            String method = (String) message.get(Message.HTTP_REQUEST_METHOD);

            // do things here
    }

}

为什么我需要使用exchange / OutMessage来获取有关当前消息的数据而我不能直接使用消息?

如何编辑这两个值?我尝试使用message.put(<key>, <value>),同时使用了Exchange / OutMessage,但没有修改。

1 个答案:

答案 0 :(得分:0)

走到路上,我相信你总是把这个价值变成零。 您可以尝试使用以下代码来获取uri的实际值:

 String requestURI = (String) message.get(Message.class.getName() + ".REQUEST_URI");