Closed EZForever closed 1 year ago
问题
使用HttpServerConfig(即Webhook)配置时,若MAH传入的请求来自未在Ariadne中配置的QQ号,下列代码会触发:
HttpServerConfig
https://github.com/GraiaProject/Ariadne/blob/8e47d9951ec7a7081440196a9115daf000bdc500/src/graia/ariadne/connection/http.py#L35-L36
这将向其调用者返回None。而其调用者显然是不支持None的,抛出TypeError异常,进而导致返回500:
None
TypeError
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'>。
qq
ValueError: unsupported response type <class 'NoneType'>
预期行为
指定在此情况下的错误码。鉴于MAH Webhook Adapter文档并未指定在此种情况下应当返回的错误码,建议使用MAH API文档中提及的400错误,即替换return为return "Bad Request", {"status": 400}。
return
return "Bad Request", {"status": 400}
使用环境:
同#229。
日志/截图
-
问题
使用
HttpServerConfig
(即Webhook)配置时,若MAH传入的请求来自未在Ariadne中配置的QQ号,下列代码会触发:https://github.com/GraiaProject/Ariadne/blob/8e47d9951ec7a7081440196a9115daf000bdc500/src/graia/ariadne/connection/http.py#L35-L36
这将向其调用者返回
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。
日志/截图
-