2012-03-29 3 views
3

Я обрабатываю один и тот же URL несколько раз подряд с urllib3. Я профилированный запросы, и я получаю заголовок:Как предотвратить python urllib3 от ответа кэширования

Cache-Control: нет-преобразования, Макс возраст = 120

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

Я на Debian Squeeze и это работает питон 2.6.6

pool = urllib3.HTTPConnectionPool('itunes.apple.com') 
request = pool.request('GET', '/webObjects/MZStore.woa/wa/viewTop? 
         selected_tab_index=0&startIndex=0&genreId=36', 
         headers = {'Host': 'itunes.apple.com', 
         'Accept-Encoding': 'gzip, deflate', 'X-Apple-Tz': -18000, 
         'X-Apple-Store-Front': '143441-1,2') 
+0

Пожалуйста, покажите вызов urllib3 с параметрами. –

ответ

3

urllib3 не имеет нативное кэширования построено в. Вы уверены, что это не сервер реагирует с кэшированными результатами?

+0

Это очень возможно. Есть ли способ избежать возврата кэшированного ответа с сервера в ожидании? –

+0

Это действительно зависит от сервера и его логики. Как упоминал Джеймс ниже, вы можете попробовать отправить кеш-контроль: no-cache header. Вы также можете попробовать добавить некоторый параметр запроса к URL-адресу, подобному метке времени. – shazow

2

Попробуйте добавить следующие заголовки:

Cache-Control: нет-кэша

Pragma: нет кэша

Expires: Thu, 01 Jan 1970 00:00:00 GMT

+0

Я пришел сюда, потому что, когда я запускал скрипт, чтобы проверить, что мой сервер запущен, я получил кешированный результат. Добавление этих заголовков сработало для меня; благодаря! Примечание. Я использую запросы Python – pa1983

Смежные вопросы