如果我想从iOS应用程序中获取REST服务,那么最成熟的库是什么? 我最好的选择是什么?
答案 0 :(得分:7)
您可以使用RestKit。
或者您可以使用基础框架中已有的NSJSONSerialization
。
这是我做的一个项目的例子。它从json webservice获取一系列饮料:
NSString *urlString= [NSString stringWithFormat:@"my json webservice URL"];
NSURL *url = [NSURL URLWithString:urlString];
NSData *data = [NSData dataWithContentsOfURL:url];
NSError *error;
NSDictionary *jsonResultSet = (NSDictionary*)[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
if ([jsonResultSet count] !=0){
NSArray* drinks = [jsonResultSet objectForKey:@"drinks"];
for (NSDictionary* drinkDictionary in drinks) {
Drink* drink = [[Drink alloc] initWithDictionary:drinkDictionary];
[[DrinkList getInstance]addDrinksWithObject:drink];
}
}
答案 1 :(得分:1)
我建议AFNetworking。以下是从Github page获取的示例代码(那里有更多样本):
NSURL *url = [NSURL URLWithString:@"https://alpha-api.app.net/stream/0/posts/stream/global"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
NSLog(@"App.net Global Stream: %@", JSON);
} failure:nil];
[operation start];
其他替代方案是:
其中,我认为AFNetworking和RestKit都是最受欢迎的。我个人已广泛使用AFNetworking,因此我推荐它。
答案 2 :(得分:1)
不太成熟但重量很轻:JNRestClient
答案 3 :(得分:0)
还有一个名为Alamofire(https://github.com/Alamofire/Alamofire)的新swift休息库,看起来真的很棒,它已经在github上已经超过6000颗星了,而且它是由Mattt Thompson创建的,这意味着你可以去寻找它无后顾之忧。
答案 4 :(得分:0)