假设我在AWSSTS上有一个登录方法,作为回应我可以检索"AccessKey, SecretKey and Temporary Session Key" . 我必须在Swift中使用HTTP协议来访问AWS Gateway API . 在HTTP Request主体中,我将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

我的情况如上述文件中所述:

您何时需要签署请求?编写自定义代码以向AWS发送HTTP请求时,需要包含代码以对请求进行签名 . 您可能出于以下原因这样做:您正在使用没有AWS SDK的编程语言 . 您希望完全控制将请求发送到AWS的方式 .

我将更多地写一些来澄清我的情况 . 我想模仿邮政客户在swift 4中使用“AWS签名”进行授权时所执行的操作 . 在此阶段的邮递员中,我们有5个字段需要填写:

  • 快捷键:"SIAJIH24PI5WGRQDYVAA"

  • SecretKey:"s-d0xIyBz5XYmh6N9MWbJsiHKxjwe46TERo6ESbE"

  • AWS区域:"us-east-1"

  • 服务名称:"execute-api"(我认为是强制性的)

  • 会话令牌:"Some long string"(临时令牌)

和HTTP标头一样,我将 Content-Type 添加到 Application/Json ,其余部分是发送请求或预览时每个邮递员的默认值 . 这是 HTTP POST 的要求 . 在Body中,我添加了 {"employeeNumber": "2"} 并选择了 raw .

我可以从中获得一些JSON响应 . 我已经高速和低速模仿swift 4中的这种行为 . 我做了几个,比如尝试从API网关获取SDK,使用身份池中的自定义名称,将其他语言SDK中的方法重写为swift . 你说出来,我已经做到了 .

我非常感谢任何帮助告诉我如何从swift 4发出签名请求 . 这不是作业 . :P

EDIT 1: 忘记添加示例网址 . 就像这样 "https://api-testing.example.com/example_directory/example_list"