2011-09-30 159 views
6

有沒有辦法攔截在客戶端請求RequestFactory?攔截GWT RequestFactory請求

我想攔截來電這樣的:

dummyRequest.dummyOperation().fire(new Receiver<String>() { 
    @Override 
    public void onSuccess(String response) {   
    } 
}); 

的想法是與服務器通信時表現出一定的負載指示。

回答

6

您可以覆蓋默認傳輸實現和RF初始化期間傳遞:

SampleRequestFactory factory = GWT.create(SampleRequestFactory.class); 
factory.initialize(new SimpleEventBus(), new DefaultRequestTransport()); 

您可以從DefaultRequestTransport調用超級實施前繼承和覆蓋的方法

send(String payload, TransportReceiver receiver) 

做一些處理並用代理包裝TransportReceiver來處理結果。

3
final DefaultRequestTransport requestTransport = new DefaultRequestTransport() { 
     @Override 
     public void send(final String payload, final TransportReceiver receiver) { 
      GWT.log("making rpc"); 
      final TransportReceiver proxy = new TransportReceiver() { 
       @Override 
       public void onTransportFailure(final ServerFailure failure) { 
        GWT.log("rpc returned"); 
        receiver.onTransportFailure(failure); 
       } 

       @Override 
       public void onTransportSuccess(final String payload) { 
        GWT.log("rpc returned"); 
        receiver.onTransportSuccess(payload); 
       } 
      }; 

      super.send(payload, proxy); 

}