Заголовок ответа GWT RPC - PullRequest
       7

Заголовок ответа GWT RPC

5 голосов
/ 05 ноября 2010

Есть ли способ прочитать информацию заголовка, полученную клиентом 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) { ... }

По параметру Ответ , кажется, содержит информацию, которая мне нужна.Это, есть какой-то способ получить это без "взлома" кода компилятора GWT?

спасибо

JuDaC

Ответы [ 2 ]

1 голос
/ 13 декабря 2011

Вы можете попытаться переопределить метод 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/

0 голосов
/ 03 декабря 2010

Если вы объявите свой метод асинхронной службы для возврата RequestBuilder , вы сможете установить RequestCallback , который будет уведомляться при получении Response . Я сам не пробовал, но похоже, что тебе нужно.

...