我想通过 params
和 headers
到 aiohttp.ClientSession
如图 此处.
这是我试过的。
async def make_request(self, url, headers, params):
async with aiohttp.ClientSession(headers=headers, params=params) as session:
async with self.limit, session.get(url=url) as response:
await asyncio.sleep(self.rate)
resp = await response.read()
return resp
async def process(url, url_id, update_id, rate, limit):
limit = asyncio.BoundedSemaphore(limit)
f = Fetch(
rate=rate,
limit=limit,
)
if "coinmarketcap" in url:
params = {
'start': '1',
'limit': '1',
'convert': 'USD,BTC'
}
headers = {
'Accepts': 'application/json',
'X-CMC_PRO_API_KEY': API_KEY,
}
else:
params = {}
headers = {}
result = await f.make_request(url, headers, params)
但我得到的错误。
Unexpected Argument at:
async with aiohttp.ClientSession(headers=headers, params=params) as session
我希望设置标题,如果让我们的网址是 币值 和 no params/headers
否则,如何解决?
params属性不能传递给会话。你需要在 get 调用中发送它,像这样。
async def make_request(self, url, headers, params):
async with aiohttp.ClientSession(headers=header) as session:
async with self.limit, session.get(url=url, params=params) as response:
await asyncio.sleep(self.rate)
resp = await response.read()
return resp
你可以在客户端会话初始化时发送头信息 或者在get调用中发送。我想这两种方法都可以。