Вот мой код:
final HttpURLConnection conn = (HttpURLConnection) sourceURL.openConnection();
if (cachedPage != null) {
if (cachedPage.eTag != null) {
conn.setRequestProperty("If-None-Match", cachedPage.eTag);
}
conn.setIfModifiedSince(cachedPage.pageLastModified);
}
conn.connect();
if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
newCachedPage.eTag = conn.getHeaderField("ETag");
newCachedPage.pageLastModified = conn.getHeaderFieldDate("Last-Modified", 0);
} else if (conn.getResponseCode() == HttpURLConnection.HTTP_NOT_MODIFIED) {
// Never reaches here
}
Кажется, я никогда не получаю код ответа HTTP_NOT_MODIFIED, даже если несколько раз попадаю на один и тот же сервер раз в быстрой последовательности - где определенно нет изменений на странице. Кроме того, conn.getHeaderField ("ETag") всегда, кажется, отвечает null, а иногда conn.getHeaderFieldDate ("Last-Modified", 0) возвращает 0. Я пробовал это на различных веб-серверах.
Может ли кто-нибудь скажите, что я делаю не так?