使用 AFNetworking 进行 Web 服务数据检索
Posted
技术标签:
【中文标题】使用 AFNetworking 进行 Web 服务数据检索【英文标题】:Using AFNetworking for Web Service data retrieval 【发布时间】:2014-03-26 18:09:26 【问题描述】:在这一点上学得很快,所以我会说这是我 99% 的错误。
为我的第一个应用尝试一个简单的过程。 我想从 Web 服务获取数据并将某些内容输出到标签。 我是一名 .NET 开发人员,因此 Web 服务已完成并在浏览器中按预期返回 JSON 数据。 "GetVenuesForBrandResult":["brandID":0,"createdDate":"/Date(-62135596800000+0000)/","venueID":2,"venueName":"HMV Records"]
看了 SO 之后,决定使用 AFNetworking,2.0 版,作为 pod 加载。
所以在获取数据方面一切正常,但请回答 2 个问题; 1) Xcode 中的输出视图显示数据; GetVenuesForBrandResult=(brandID = 0;createdDate = "/Date(-62135596800000+0000)/";venueID = 2;venueName = "HMV 记录"; ); 这只是用于显示目的的 XCode5 格式吗?我的数据会是真正的 json 吗? 2)我如何消费这个? 尝试检查 isKindOfClass 是否为 nsarray 或 nsdictionary,如果条件从未满足。这让我怀疑 Q1 是问题所在。
感谢您对 Xcode 新手的帮助。
根据 Paul 的出色提示,我的代码的相关部分在这里; Web 服务链接现在是硬编码的,用于测试目的
NSString *urlstring = @"http://hiddenurl/shopBeaconService/Service1.svc/GetVenuesForBra nd/1";
//NSString *str2 = self.email.text;
//NSString *str3 = @"/";
//NSString *str4 = [self.password text];
//NSString *urlstring = [NSString stringWithFormat:@"%@%@%@%@",str1,str2,str3,str4];
NSURL *url = [NSURL URLWithString:urlstring];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
operation.responseSerializer = [AFJSONResponseSerializer serializer];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation,id responseObject)
NSLog(@"%@",responseObject);
// NSDictionary *item = [responseObject objectForKey:@""];
// NSString *title = [item objectForKey:@"venueName"];
//NSLog(@"venue= %@",title);
failure:nil];
[operation start];
【问题讨论】:
如果您可以更新您的问题以包含您的源代码,这将有所帮助 【参考方案1】:使用 AFJSONResponseSerializer 时的响应对象是一个 NSDictionary。您在日志中看到的是来自 [responseObject description]
的输出 - 一种为记录目的打印描述的方法。
Ray Wenderlich 在 AFNetworking 上有一个很好的 tutorial
【讨论】:
非常感谢保罗。它为我指明了自己解决问题的正确方向。这就是你最终学习的方式!以上是关于使用 AFNetworking 进行 Web 服务数据检索的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 AFNetworking 或 STHTTPRequest 发出 SOAP Web 服务请求?
AFHTTPSessionManager 使用 AFNetworking 调用多个 Web 服务或批处理
Swift 中 AFNetworking 2.0 中的 Web 服务调用问题
如何通过 AFNetworking 和 NSUrlSession 调用 SOAP Web 服务