HTTPClient не использует кеш по умолчанию (при использовании только класса DefaultHttpClient
).Это происходит, если вы используете CachingHttpClient
, который является HttpClient
интерфейсным декоратором, включающим кэширование:
HttpClient client = new CachingHttpClient(new DefaultHttpClient(), cacheConfiguration);
Затем он анализирует заголовки If-Modified-Since
и If-None-Match
, чтобы решить, будет ли запрос удаленномусервер выполняется, или если его результат возвращается из кэша.
Я подозреваю, что ваша проблема вызвана тем, что прокси-сервер стоит между вашим приложением и удаленным сервером.
Вы можете легко проверить это с приложением curl
;выполнить некоторое количество запросов без пропуска прокси:
#!/bin/bash
for i in {1..50}
do
echo "*** Performing request number $i"
curl -D - http://yourserveraddress.com -o $i -s
done
А затем выполнить diff
между всеми загруженными файлами.Все они должны иметь различия, которые вы упомянули.Затем добавьте параметр -x/--proxy <host[:port]>
к curl, запустите этот скрипт и снова сравните файлы.Если некоторые ответы совпадают с другими, вы можете быть уверены, что это проблема прокси-сервера.