【问题标题】:AWS API Gateway on iOSiOS 上的 AWS API 网关
【发布时间】:2016-08-19 02:07:42
【问题描述】:

我正在使用 NSURL 连接到我的 API 网关,而我在 iOS 设备上收到的响应是“缺少身份验证令牌”。我检查了我是否已经部署了我的 API。它可以通过 Chrome 和 Safari 使用相同的 url 访问并返回一个完全填写的 json。

我的代码:

NSString* urlString = [NSString stringWithFormat:@"https://csjm26qn0c.execute-api.us-east-1.amazonaws.com/dev/truckstopsregion1/1"];
NSURL *url = [NSURL URLWithString: urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[url standardizedURL]];

[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request addValue:@"...NOT GOING TO SHOW..." forHTTPHeaderField:@"API-Key"];


NSURLSession* session = [NSURLSession sharedSession];
NSURLSessionDataTask* task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
    if(error == nil && data != nil){

        NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];

    }
}];

[task resume];

【问题讨论】:

    标签: ios json amazon-web-services nsurlsession nsurlrequest


    【解决方案1】:

    我发现您的 API 网关访问存在两个问题。

    1. 您的端点可能未设置为处理 POST 请求。您的 URL 从 GET 请求返回数据。我将 POST 更改为 GET 并且我能够获取 JSON 数据。当请求的端点不存在时,“缺少身份验证令牌”消息也是通用消息。

    2. 返回的 JSON 格式错误。检查语法。我已经发布了从您的 URL 收到的 JSON 字典。它在经线处缺少一个逗号。

      {
          "Stops" :
          [
              {
                  "id"       : "1",
                  "latitude" : "300",
                  "longitude": "400"
                  "name"     : "Test Stop 2"
              }
          ]
      }
      

    【讨论】:

    • 建议添加“缺少身份验证令牌”消息是一个通用消息,用于请求的端点也不存在(您的第一个项目符号的情况)。
    • @AndrewTempleton 完成 :)
    【解决方案2】:

    ApiGateway 可以自动生成适用于 iOS、Android 和 JavaScript 的 SDK。虽然这不能回答您的问题,但使用自动生成的 SDK 会(可能)为您解决问题。

    在此处查看文档:http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-generate-sdk.html#how-to-generate-sdk-console

    【讨论】:

      猜你喜欢
      • 2019-05-31
      • 1970-01-01
      • 2016-03-31
      • 2018-09-05
      • 2020-12-13
      • 1970-01-01
      • 2018-07-24
      • 2016-12-13
      • 2021-12-08
      相关资源
      最近更新 更多