复现方式
Server Code
import bottle
app = bottle.Bottle()
@app.get('/')
def index():
bottle.response.set_cookie("a" * 10000, "test")
return 'ok'
app.run()
Client Code
import asyncio
from aiohttp import ClientSession
async def main():
async with ClientSession() as req:
async with req.get('http://127.0.0.1:8080/') as r:
print(await r.text())
asyncio.run(main())
报错就是
aiohttp.client_exceptions.ClientResponseError: 400, message='Got more than 8190 bytes (10005) when reading request header field Set-Cookie.', url=URL('http://127.0.0.1:8080/')
尝试
简单的 patch 一个类的方法, 改掉默认值. 失败, 因为这是 C 实现的...
https://github.com/aio-libs/aiohttp/search?q=max_field_size+&type=
基本全是写死的常量默认值
另:
基本又是一个 aiohttp 独占的报错, 浏览器 / httpx / Requests 都没这问题.
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.