Подтвердить что ты не робот

Как запретить Android возвращать кешированный ответ на мой HTTP-запрос?

Я пишу клиент, который делает повторяющиеся HTTP-запросы для xml-данных, которые меняются со временем. Похоже, что Android-стек кэширует мои запросы на страницы и повторно возвращает одну и ту же страницу. Как я могу убедиться, что он получает новую страницу каждый раз?

- код ---

HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
HttpResponse response;
    response = client.execute(request);

InputStream in;
in = response.getEntity().getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));

Спасибо, Gerry

4b9b3361

Ответ 1

добавить HTTP-заголовок:

Cache-Control: no-cache

и посмотрите, работает ли это.

Ответ 2

Добавить неиспользуемый параметр в конце URL-адреса:

HttpGet request = new HttpGet(url + "?unused=" + someRandomString());

где someRandomString(), вероятно, связано с текущим временем.

Это грубо, но он в значительной степени гарантированно работает независимо от всех внешних факторов, которые могут привести к "правильному" решению, например, неправильно сконфигурированным или ошибочным прокси.

Ответ 3

Подсказка: чтобы получить случайную строку

HttpGet request = new HttpGet(url + "?unused=" + UUID.randomUUID().toString());