Как сделать запрос клиента на внешний сервер, избегая кеша, используя aiohttp

Мы используем aiohttp, чтобы сделать несколько запросов к различным поставщикам веб-сайтов, чтобы получить их последние данные.

Некоторые поставщики контента обслуживают данные из кэша. Можно ли запросить данные с сервера напрямую? Мы безуспешно пытались передать параметр headers.

async def fetch(url):
    global response
    headers = {'Cache-Control': 'no-cache'}
    async with ClientSession() as session:
        async with session.get(url, headers=headers, proxy="OUR-PROXY") as response:
            return await response.read()

Цель состоит в том, чтобы получить last-modified date header, который не предоставляется из запроса кеша.


person dataviews    schedule 14.06.2018    source источник
comment
Извините, я не понимаю, о каком кеше вы говорите и чего хотите добиться?   -  person Andrew Svetlov    schedule 14.06.2018


Ответы (1)


Попробуйте добавить в URL дополнительную переменную с динамическим значением (например, метку времени). Это предотвратит кэширование на стороне сервера, даже если он игнорирует Cache-Control.

Пример:
с: https://example.com/test
на: https://example.com/test?timestamp=20180724181234

person wowkin2    schedule 24.07.2018
comment
Должно ли значение быть уникальным каждый раз, когда вы делаете вызов? Например, мы делаем 100 звонков в день, можем ли мы добавить одно и то же значение в URL-адрес или оно должно быть другим, чтобы обойти кеш? - person dataviews; 24.07.2018
comment
Да просто разный (каждый раз уникальный) обход кеша. - person wowkin2; 25.07.2018
comment
к сожалению нет - person dataviews; 06.08.2018
comment
Затем попробуйте отправить запросы в разных сессиях. - person wowkin2; 06.08.2018