Akh*_*ath 3 python-asyncio aiohttp requests-futures
我想知道如何在以下 get 调用中传递标头
headers = {
'User-Agent': 'Mozilla'
}
async def fetch(url, session):
async with session.get(url) as response:
resp = await response.read()
return resp
Run Code Online (Sandbox Code Playgroud)
我尝试了以下但没有得到任何回应。
headers = {
'User-Agent': 'Mozilla'
}
async def fetch(url, session):
async with session.get(url, headers=headers) as response:
resp = await response.read()
return resp
Run Code Online (Sandbox Code Playgroud)
目的是以异步模式调用不同的 url。需要知道是否还有其他替代方法,但无论如何,都需要传递标头才能获得正确的响应。
您可以使用 httpbin.org for requests 来查看服务器如何看待您的请求:
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())
Run Code Online (Sandbox Code Playgroud)
结果:
{'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'}
Run Code Online (Sandbox Code Playgroud)
如您所见,'User-Agent': 'Mozilla'已发送。