我有以下代码试图在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错误的线索?
答案 0 :(得分:0)
如果您在根资源上配置了GET方法,并且将其部署到名为https://xxxxxxxxxx.execute-api.us-west-1.amazonaws.com/TheStage
的阶段,则网址TheStage
将起作用。 (不确定API Id和/或阶段是否真实)。如果您只是导航到URL,浏览器将发送GET请求。
我建议使用像Postman这样的工具来测试API调用;您可以配置参数,正文,HTTP方法,身份验证等。