2013-10-17 133 views
0

我想在HTTP客戶端中使用CXF攔截器修改HTTP請求URI和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>)和交換/ OutMessage相同,但沒有任何修改。

+0

你可以添加你身邊是如何配置的攔截一些細節?這聽起來像它被稱爲InInterceptor而不是OutInterceptor。 – Patrick

回答

0

即將到來的路徑,我相信你總是會將該值設爲null。 你可以試試下面的代碼,讓你的URI的實際值:

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