从swift

时间:2017-05-28 10:36:06

标签: 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
        })

它运行并完成但发生了任务错误,并且出现错误的print语句:

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刚刚从api网关部署的端点复制和粘贴,因此我不确定为什么这将是不受支持的URL。

端点的格式如下:

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

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

{"message":"Missing Authentication Token"}

这很奇怪,因为我的api网关资源都将Authorization设置为None,并且API Key设置为所有方法都不需要。这个丢失的身份验证令牌是否为什么在调用API时我在swift中获得不受支持的URL错误的线索?

1 个答案:

答案 0 :(得分:0)

如果您在根资源上配置了GET方法,并且将其部署到名为https://xxxxxxxxxx.execute-api.us-west-1.amazonaws.com/TheStage的阶段,则网址TheStage将起作用。 (不确定API Id和/或阶段是否真实)。如果您只是导航到URL,浏览器将发送GET请求。

我建议使用像Postman这样的工具来测试API调用;您可以配置参数,正文,HTTP方法,身份验证等。