在 aiohttp 的客户端或服务器上,可以设置相应的参数来增加允许的 Header 大小。
下面是具体的代码示例:
import aiohttp
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-Encoding": "gzip", "Content-Type": "application/json", "Content-Length": "32", # 以下是设置 Header 最大大小的参数 "Raw-Content-Length": "32", aiohttp.hdrs.CONTENT_LENGTH: "32", aiohttp.hdrs.SERVER_TIMEOUT: "300", # 服务器响应超时时间 aiohttp.hdrs.CLIENT_RESPONSE_TIMEOUT: "300", # 客户端响应超时时间 aiohttp.hdrs.MAX_FORWARDS: "10", # 最大的跳转次数 }
async with aiohttp.ClientSession(headers=headers) as session: async with session.get(url) as response: data = await response.json()
from aiohttp import web
async def some_handler(request): # 设置响应头,允许 Header 大小为 16384 字节 response_headers = { "Content-Type": "text/plain", "Content-Length": "12", "Header-Length": "16384", } return web.Response(text="Hello World", headers=response_headers)
app = web.Application() app.add_routes([web.get('/', some_handler)])
if name == "main": web.run_app(app)