2

簡単な問題:

onResponseReceive getStatusCode304 ではなく 200 を返します。Fiddler は、応答ステータスコードが 304 であることを教えてくれます。

どうすればいいですか: サーバーに新しいデータがないか常にポーリングします (10 秒ごと)。データが変更されていない場合は 304 で応答し、そうでない場合は 200 とデータ全体で応答します。onResponseReceived メソッドでは、statuscode は常に 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