2010-11-05 62 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/