[Bug] 使用`HttpServerConfig`配置时,传入的`qq`头有误会导致服务端返回500错误
EZForever opened this issue · 0 comments
EZForever commented
问题
使用HttpServerConfig
(即Webhook)配置时,若MAH传入的请求来自未在Ariadne中配置的QQ号,下列代码会触发:
Ariadne/src/graia/ariadne/connection/http.py
Lines 35 to 36 in 8e47d99
这将向其调用者返回None
。而其调用者显然是不支持None
的,抛出TypeError
异常,进而导致返回500:
https://github.com/GraiaProject/Amnesia/blob/v0.7.1/src/graia/amnesia/builtins/aiohttp.py#L439-L448
如何复现
使用HttpServerConfig
配置启动Ariadne,向其监听的端口发送任意请求。当请求头qq
与Ariadne配置不同时,可以注意到返回500错误,且控制台提示异常ValueError: unsupported response type <class 'NoneType'>
。
预期行为
指定在此情况下的错误码。鉴于MAH Webhook Adapter文档并未指定在此种情况下应当返回的错误码,建议使用MAH API文档中提及的400错误,即替换return
为return "Bad Request", {"status": 400}
。
使用环境:
同#229。
日志/截图