2

简单的问题:

onResponseReceive getStatusCode返回 200 而不是 304。Fiddler 告诉我响应状态码是 304。

我该怎么做:我不断地轮询服务器以获取新数据(每 10 秒)。如果数据没有改变,它会响应 304,否则会响应 200 和整个数据。在 onResponseReceived 方法中,状态码始终为 200,数据始终存在。

如何获得 304 的任何提示。我阅读了一些关于 If-Modified-Since 的内容,这会导致整个数据重新发送(使用代码 200),但我实际上想要 304。我也不想通过以下方式比较数据手,看看有没有变化。

GWT 代码:

RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET,
                dataUrl);

        requestBuilder.setHeader("_____", "none");
        requestBuilder.setHeader("_______", "_________");
        requestBuilder.setCallback(new RequestCallback() {

            @Override
            public void onResponseReceived(Request request, Response response) {
                PrintResponse.printResponse(response, "EntryPoints");
            if (response.getStatusCode() == 200) {.....}  

            }

            @Override
            public void onError(Request request, Throwable exception) {

            }
        });

        try {
            requestBuilder.send();
        } catch (RequestException e) {
            e.printStackTrace();
        }

回复:

HTTP/1.1 304
Content-Type: application/json
Cache-Control: max-age=0
Content-Length: 0
Date: Thu, 19 Apr 2012 10:49:10 GMT
Server: ________
Connection: Keep-Alive
Keep-Alive: timeout=60

最好的问候,斯特凡

4

0 回答 0