Jax-rs Cache контрольный заголовок в ответ не работает - PullRequest
0 голосов
/ 20 февраля 2019

Я пытаюсь кэшировать ответ службы покоя, но при каждом последующем запросе запрос отправляется на сервер.Я не уверен, что мне не хватает в коде.Я использую JAX-RS для настройки заголовков кэша.Сначала я думал, что это связано с параметром запроса в запросе, поэтому я удалил его, но кеширование не сработало даже после этого.

Вот что я написал:

@GET
@Path("/primeNumber")
public Response prime() {
    String number = "3";
    boolean isPrime = true;
    int numberInt = Integer.valueOf(number);
    for (int i = 2; i <= numberInt/2 ; i++) {
        if (numberInt % i == 0) {
            isPrime = false;
            break;
        }
    }

    CacheControl cacheControl = new CacheControl();
    cacheControl.setMaxAge(60000);

    long current = new Date().getTime();
    Date expires = new Date(current + (100 * 1_000));

    return Response.status(Status.OK).entity(isPrime).expires(expires).cacheControl(cacheControl).build();
}

изаголовок моего ответа выглядит следующим образом:

Response Headers

Я пытался использовать Chrome, Firefox и Advanced REST клиент (расширение Chrome) для тестирования.

1 Ответ

0 голосов
/ 04 марта 2019

Мне удалось выяснить проблему. Ничего плохого в том, как я реализовал это, но я тестировал его с помощью обновления браузера, и как уже упоминалось здесь , обновление окна отправит запрос на сервер.Когда я тестировал тот же код через навигацию по ссылкам, он работал нормально.

...