2010-11-05 96 views
5

有沒有什麼方法可以讀取GWT客戶端收到的RPC響應的頭信息?GWT RPC響應頭文件

Response header 
Server     Apache-Coyote/1.1 
Set-Cookie    JSESSIONID=3379B1E57BEB2FE227EDC1F57BF550ED; Path=/GWT 
Content-Encoding  gzip 
Content-Disposition attachment 
Content-Type   application/json;charset=utf-8 
Content-Length   209 
Date     Fri, 05 Nov 2010 13:07:31 GMT 

我在當客戶端接收在其報頭中的的Set-Cookie屬性識別特別的興趣。

有什麼辦法可以做到GWT?

我發現,

com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter<T> 

存在的方法

public void onResponseReceived(Request request, Response response) { ... } 

在參數響應似乎有我需要的信息。這是存在一些方法來獲得,而不是「racking」GWT編譯器代碼?

感謝

JuDaC

回答

0

如果你宣佈你的異步服務方法返回一個RequestBuilder你應該能夠設置一個RequestCallback收到Response時會收到通知。我自己沒有嘗試過,但它看起來像你所需要的。

+1

@Issac的啓發,你可以解釋一下您的解決方案 感謝 – 2011-03-16 11:32:51

+0

@ Vegeta可能。你有什麼問題? – 2011-03-18 23:57:02

1

您可以嘗試重寫RpcRequestBuilder.doSetCallback方法,迫使你的服務使用它:

MyServiceAsync service = GWT.create(MyService.clas); 
((ServiceDefTarget) service).setRpcRequestBuilder(new RpcRequestBuilder() { 
    @Override 
    protected void doSetCallback(RequestBuilder rb, final RequestCallback callback) { 
     super.doSetCallback(rb, new RequestCallback() { 

      @Override 
      public void onResponseReceived(Request request, Response response) { 
       String headerValue = response.getHeader("my-header"); 
       // do sth... 
       callback.onResponseReceived(request, response); 
      } 

      @Override 
      public void onError(Request request, Throwable exception) { 
       callback.onError(request, exception); 
      } 
     }); 
    } 
}); 

通過http://stuffthathappens.com/blog/2009/12/22/custom-http-headers-with-gwt-rpc/