koishijs / koishi-plugin-blockly

Use blockly to write a plugin for koishi bot
https://blockly.koishi.chat
GNU Affero General Public License v3.0
34 stars 21 forks source link

期望优化“发送简单HTTP GET请求”块的执行逻辑 #55

Open Ailety opened 1 year ago

Ailety commented 1 year ago

HTTP GET请求块在网址返回400、403、422、429等结果会直接报错,并无法执行下面的操作。 但是在很多的api中,如果都会给这些错误的返回结果给予一定的提示数据,我希望请求块能处理这些错误码,并能正常返回相应的数据。

例如,我正在制作一个查询机器人,通过某个官方提供的api接口,可以获取到玩家的数据。 用户在QQ群里发送query 玩家名称,例如query Ailety,然后请求块就会根据用户输入的玩家名去访问一个假设为https://api.xxxx.net/player?playername=Ailety的网址,然后使用json解析并获取相应的数据发送给QQ群的用户。

但是如果用户输入了一个不存在的玩家名,此时https://api.xxxx.net/player?playername=XXXX返回了422,并带有json数据如下: { "success": false, "cause": "Malformed UUID" } 这里的cause里的“Malformed UUID”意味着用户输入了错误的玩家名。类似此类的还有: { "success": false, "cause": "Invalid API key" } 或者 { "success": false, "cause": "Missing one or more fields [...]" } 等等

我想通过判断cause里的参数来提示QQ群中的用户他们输入错误的玩家名,而不是一个“发生未知错误”。