iOS上的AWS API网关
我正在使用NSURL连接到API网关,在iOS设备上收到的响应是“缺少身份验证令牌”。我已检查是否已部署我的API。它是可访问的,并使用相同的url通过Chrome和Safari返回完整填写的json 我的代码: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
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数据。当请求的端点不存在时,“缺少身份验证令牌”消息也是一条通用消息{
"Stops" :
[
{
"id" : "1",
"latitude" : "300",
"longitude": "400"
"name" : "Test Stop 2"
}
]
}
我发现您的API网关访问存在两个问题
POST
请求。您的URL从GET
请求返回数据。我将POST
更改为GET
,并且我能够获取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:)