可能是由于请求头中存在不合法的字符导致了该错误。可以将请求头中的所有字段名和字段值都编码为ASCII字符集中的可打印字符。下面是一个示例代码:
import aiohttp
async def make_request():
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36",
"Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
"X-Requested-With": "XMLHttpRequest",
#像下面这样的字段值可能会导致错误
"Authorization": "Bearer 中文",
}
async with aiohttp.ClientSession() as session:
async with session.get("", headers=headers) as response:
result = await response.text()
print(result)
# 将请求头编码为ASCII字符集
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36",
"Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
"X-Requested-With": "XMLHttpRequest",
"Authorization": "Bearer %E4%B8%AD%E6%96%87", #在这里进行了编码
}
async with aiohttp.ClientSession() as session:
async with session.get("", headers=headers) as response:
result = await response.text()
print(result)