假设我有一个使用AWSSTS的登录方法,作为回应,我可以检索“ AccessKey,SecretKey和Temporary Session Key”。而且我必须在Swift中使用HTTP协议才能访问AWS Gateway API。在HTTP请求正文中,我将JSON值作为原始值传递:{"employeeNumber": "2"}
。
而且我无法从API网关生成iOS的SDK。(是的,我知道这是强制性的,请相信我)
我已经阅读了以下内容,但是即使是以swift编写的(需要对swift 4进行一些更新),我也无法找到解决方法使其能够通过HTTP调用连接AWS GateWay API。无论是快速的urlsession还是Alamofire调用,我都很好,我很想知道如何为HTTP标头正确添加。
http://www.codeography.com/2016/03/20/signing-aws-api-requests-in-swift.html https://github.com/Erudika/para-client-ios/blob/master/Sources/Signer.swift
我已经阅读了官方文档,是的,我是菜鸟。我不能得到太多的伪代码。
https://github.com/aws/aws-sdk-ios/blob/440d3141/AWSCore/Authentication/AWSSignature.m https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html
我的情况如上述文档所述:
何时需要签署请求?
在编写自定义代码以将HTTP请求发送到AWS时,您需要 包括用于签署请求的代码。您可以为以下目的进行此操作 原因:
您正在使用没有AWS的编程语言 SDK。
您希望完全控制如何将请求发送到AWS。
为了澄清我的情况,我将写更多内容。我想模仿在使用“ AWS签名”进行快速授权时选择Postman Client的行为。在现阶段的Postman中,我们要填写5个字段:
在HTTP标头中,我将Content-Type
添加到Application/Json
中,其余的是邮递员在发送请求或预览时的默认设置。这是 HTTP POST 请求。在“正文”中,添加{"employeeNumber": "2"}
,并选择原始。
我可以从中得到一些JSON响应。而且,我已经花了很多时间来模仿Swift 4中的这种行为。我做了很多事情,例如尝试从API Gateway获取SDK,使用身份池中的自定义名称,将其他语言的方法重写为Swift的方法。您命名,我已经完成。
我真的很感激任何帮助我告诉我如何从Swift 4发出“已签名”请求的方法。这不用于家庭作业。 :P
编辑1:
忘记添加示例URL。就像这样"https://api-testing.example.com/example_directory/example_list"