как передать заголовки в async с помощью session.get()
Я хотел бы знать, как передать заголовок в следующем вызове get
headers = {
'User-Agent': 'Mozilla'
}
async def fetch(url, session):
async with session.get(url) as response:
resp = await response.read()
return resp
Я попробовал сделать следующее, но не получил ответа.
headers = {
'User-Agent': 'Mozilla'
}
async def fetch(url, session):
async with session.get(url, headers=headers) as response:
resp = await response.read()
return resp
Цель состоит в том, чтобы вызывать разные URL-адреса в асинхронном режиме. Необходимо знать, есть ли другой альтернативный способ, но в любом случае необходимо передать заголовки, чтобы получить правильный ответ.
1 ответ
Решение
Вы можете использовать httpbin.org для запросов, чтобы увидеть, как серверы видят ваш запрос:
import asyncio
import aiohttp
from pprint import pprint
headers = {
'User-Agent': 'Mozilla'
}
async def fetch(url, session):
async with session.get(url, headers=headers) as response:
res = await response.json()
pprint(res)
async def main():
async with aiohttp.ClientSession() as session:
await fetch("http://httpbin.org/get", session)
asyncio.run(main())
Результат:
{'args': {},
'headers': {'Accept': '*/*',
'Accept-Encoding': 'gzip, deflate',
'Host': 'httpbin.org',
'User-Agent': 'Mozilla',
'X-Amzn-Trace-Id': 'Root=1-602f94a7-3aa49d8c48ea04345380c67b'},
'origin': '92.100.218.123',
'url': 'http://httpbin.org/get'}
Как видишь
'User-Agent': 'Mozilla'
было отправлено.