【发布时间】:2015-07-02 10:16:21
【问题描述】:
我必须向 API 发送一个带有设备 ID 和类型的 JSON,它会给我另一个带有令牌和其他一些东西的 JSON。
我对 iOS 还很陌生,已经三周了,我对 Web 服务真的很陌生。所以,我不知道如何发送和获取 JSON。
我正在尝试同时使用 AFNetworking,我认为这是最简单的方法。所以,我认为使用 POST 发送 JSON 可能会很好,我使用以下代码实现了:
NSString *uniqueIdentifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString];//DeviceID
NSLog(@"unique idf: %@ and type: %@", uniqueIdentifier, [[NSNumber numberWithInt:1] stringValue]);
NSURL *baseURL = [NSURL URLWithString:BaseURLString];
NSDictionary *parameters = @{@"DeviceId" : uniqueIdentifier, @"Type" : [[NSNumber numberWithInt:1] stringValue]};
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
[manager GET:BaseURLString parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
所以,它会返回设备 ID 和类型,我从写入日志中知道。但是我卡在那里。另一方面,它没有达到成功块。我现在调试它,虽然有一个命令 NSLog ,但也没有在日志屏幕上打印。可能有什么问题?
老实说,对我来说,在那里构建一个 GET 只是令人困惑。因此,如果您能帮助我弄清楚这种情况,我将不胜感激。
谢谢。
【问题讨论】:
-
responseObject是什么数据? -
您发送 json,它会为您提供 json - 它是如何工作的?
-
为什么要在成功块中编写GET方法,它会给出什么?
-
答案分别是:1)responseObject 应该是 JSON 对吧?因为我发送了一个请求,API 的返回将是 JSON 给我。 2)它的工作原理就像,我用 json 发送请求,它给了我另一个 json 来响应它。 3) GET 方法没有给我来自 API 的响应吗?我不清楚那里。可能会发生变化。
-
GET 应该用于从指定资源请求一些数据的请求。请注意,查询字符串(名称/值对)在 GET 请求的 URL 中发送:作为参数。检查您是否使用 GET 请求发送正确的参数并引用正确的 URL。