拦截GWT RequestFactory请求

拦截GWT RequestFactory请求,gwt,requestfactory,Gwt,Requestfactory,有没有办法在客户端拦截RequestFactory请求 我想拦截这样的呼叫: dummyRequest.dummyOperation().fire( new Receiver<String>() { @Override public void onSuccess(String response) { } }); dummyRequest.dummyOperation().fire(新接收器(){ @凌驾 成功时公共无效(字符串响应){ } }); 这样

有没有办法在客户端拦截RequestFactory请求

我想拦截这样的呼叫:

dummyRequest.dummyOperation().fire( new Receiver<String>() {
  @Override
  public void onSuccess(String response) {        
  }
});
dummyRequest.dummyOperation().fire(新接收器(){
@凌驾
成功时公共无效(字符串响应){
}
});

这样做的目的是在与服务器通信时显示一些加载指示。

您可以覆盖默认传输实现,并在RF初始化期间传递它:

SampleRequestFactory factory = GWT.create( SampleRequestFactory.class );
factory.initialize( new SimpleEventBus(), new DefaultRequestTransport() );
您可以从DefaultRequestTransport继承并重写该方法

send(String payload, TransportReceiver receiver)
在调用超级实现之前进行一些处理,并用委托包装TransportReceiver以处理结果

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);

}