如何通过 golang aws sdk 从 `postToConnection` 调用捕获 410 错误?

如何通过 golang aws sdk 从 `posttoconnection` 调用捕获 410 错误?

问题内容

我在 AWS 中使用 websocket apigateway 来管理 websocket 连接。存在连接断开但未触发 @disconnect 路由的情况。在这种情况下,postToConnection api 调用将返回 410 错误。

我正在使用golang sdk github.com/aws/aws-sdk-go-v2/service/apigatewaymanagementapipostToConnection API 返回 PostToConnectionOutput,错误 。如何检测错误是否是410错误?

正确答案

可以检查返回的错误是goneexception类型

请参阅 https://aws.github.io /aws-sdk-go-v2/docs/handling-errors/

import( api "github.com/aws/aws-sdk-go-v2/service/apigatewaymanagementapi" apitypes "github.com/aws/aws-sdk-go-v2/service/apigatewaymanagementapi/types" ) func main() { svc := api.New(api.Options{ Region: "your-region", }) output, err := svc.PostToConnection(ctx, &api.PostToConnectionInput{ ConnectionId: aws.String("your-connection-id"), }) if err != nil { var gne *apitypes.GoneException if errors.As(err, &gne) { log.Println("error:", gne.Error()) } return } }登录后复制