我想在 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?
如何编辑这两个值?我尝试使用message.put(<key>, <value>)
和相同的exchange/OutMessage,但没有任何修改。