Open Ailety opened 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群中的用户他们输入错误的玩家名,而不是一个“发生未知错误”。
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群中的用户他们输入错误的玩家名,而不是一个“发生未知错误”。