Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS上的AWS API网关_Ios_Json_Amazon Web Services_Nsurlsession_Nsurlrequest - Fatal编程技术网

iOS上的AWS API网关

iOS上的AWS API网关,ios,json,amazon-web-services,nsurlsession,nsurlrequest,Ios,Json,Amazon Web Services,Nsurlsession,Nsurlrequest,我正在使用NSURL连接到API网关,在iOS设备上收到的响应是“缺少身份验证令牌”。我已检查是否已部署我的API。它是可访问的,并使用相同的url通过Chrome和Safari返回完整填写的json 我的代码: NSString* urlString = [NSString stringWithFormat:@"https://csjm26qn0c.execute-api.us-east-1.amazonaws.com/dev/truckstopsregion1/1"]; NSURL *url

我正在使用NSURL连接到API网关,在iOS设备上收到的响应是“缺少身份验证令牌”。我已检查是否已部署我的API。它是可访问的,并使用相同的url通过Chrome和Safari返回完整填写的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];

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

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

  • 返回的JSON格式不正确。检查语法。我已经发布了从您的URL收到的JSON字典。在经线处缺少一个逗号

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

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

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

  • 返回的JSON格式不正确。检查语法。我已经发布了从您的URL收到的JSON字典。在经线处缺少一个逗号

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

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


    看看这里的文档:

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


    查看此处的文档:

    建议添加“缺少的身份验证令牌”消息是请求的端点不存在时的通用消息(第一个项目符号的情况)。@AndrewTempleton Done:)建议添加“缺少的身份验证令牌”消息是当请求的端点不存在时的通用消息(您的第一个项目符号的情况)。@AndrewTempleton Done:)