swift - 从 swift 访问 api 网关端点时出现 "unsupported URL"错误

标签 swift amazon-web-services aws-api-gateway endpoint

我有以下代码尝试调用 swift 中名为 endsession 的 api 网关函数:

        client.endsessionPost(body: pleasegod!).continue ({ (task:AWSTask) -> Any? in
            if let error = task.error {

                print("Error occurred: \(error)")

                return nil
            }

            if let result = task.result {
                print("IT WORKED")
                // Do something with result
            }
            return nil
        })

它运行并完成,但出现任务错误,错误的打印语句显示:

Error occurred: Error Domain=NSURLErrorDomain Code=-1002 "unsupported URL" UserInfo={NSUnderlyingError=0x618000056e60 {Error Domain=kCFErrorDomainCFNetwork Code=-1002 "(null)"}, NSErrorFailingURLStringKey=(null)/endsession, NSErrorFailingURLKey=(null)/endsession, NSLocalizedDescription=unsupported URL}

似乎是说提供的端点 url 不正确。端点 url 刚刚从 api 网关部署的端点复制并粘贴,因此我不确定为什么这会是不受支持的 url。

端点的格式如下:

https://kco37e2fsa.execute-api.us-west-1.amazonaws.com/TheStage

当我在浏览器中访问此端点时,我注意到它显示:

{"message":"Missing Authentication Token"}

这很奇怪,因为我的 api 网关资源的所有方法都将“授权”设置为“无”,并将 API key 设置为“不需要”。这个缺少的身份验证 token 是否是我在调用 API 时在 swift 中收到不支持的 URL 错误的线索?

最佳答案

仅当您在根资源上配置了 GET 方法,并且如果部署到名为 TheStage 的阶段。 (不确定 API ID 和/或阶段是否真实)。如果您只是导航到该 URL,浏览器将发送 GET 请求。

我会推荐像 Postman 这样的工具用于测试 API 调用;您可以配置参数、正文、HTTP 方法、身份验证等。

关于swift - 从 swift 访问 api 网关端点时出现 "unsupported URL"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44226317/

相关文章:

swift - 在 Swift 中添加 Storyboard

amazon-web-services - 在加壳器中构建 AMI,包括使用加壳器修改快照

ios - 将 Amazon API Gateway 与 ios 结合使用

amazon-web-services - AWS ECS 集群容量提供商

amazon-web-services - 如何使用预定义的 NS 创建 route53 区域,或更新注册域的 NS?

amazon-web-services - 如何将 API 网关指向 CDK 中的 lambda 别名?

amazon-web-services - AWS STS AssumeRole : Are IAM user credentials needed, 与否?

ios - Swift - 如何检查 map 注释(pin)是否在数组内?

xcode - 运行 Playground 时出错。无法找到合适的目标设备

swift - 音频在模拟器中播放,但不在设备上播放