iOS开发之网络编程:6-网络请求实例
本节我们使用聚合数据中申请的【微信精选】API,获取一些新闻类的数据。通过该案例,讲解一下如何使用AFNeworking发送POST请求和GET请求,以及如何对服务器返回的数据进行解析。
准备工作
开始编写代码之前,我们根据上一节所讲的方法在聚合数据上申请【微信精选】数据,并获取该API接口的AppKey。
创建一个Single View Application工程,在info.plist文件中添加App Transport Security Settings相关设置,使得我们能访问HTTP的地址。
使用CocoaPods或者手工方式导入AFNetworking框架,并在ViewController.m中导入AFNetworking框架的头文件。
网络请求实例
通过聚合数据中的API说明,【微信精选】该API的网络请求既可以使用POST请求,也可以使用GET请求,我们接下来以POST请求为例。
设置请求参数。根据请求参数说明,该API中可以设置如下4个参数,其中key为必选参数,其他3个为可选参数,我们创建一个字典类型的对象,并在其中添加请求参数。
NSDictionary *parameters = [NSDictionary dictionaryWithObjectsAndKeys:@"你的APPKEY值", @"key",nil];
接下来我们使用AFNetworking发送网络请求。首先,初始化一个AFHTTPSessionManager类型的对象--manager。
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
然后使用AFNetworking中的POST请求方法,向指定的服务器地址发送网络请求,并携带相关参数。当获取到服务器返回的数据后,我们通过解析responseObject对象,打印其中携带的部分内容。例如,根据API的接口文档中的“JSON返回示例”,打印其中一篇文章中的标题信息。
[manager POST:@"http://v.juhe.cn/weixin/query" parameters:parameters progress:^(NSProgress * _Nonnull uploadProgress) {
// 通过uploadProgress可以获取数据请求的进度
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
// 请求成功,解析数据
NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
//获取所需数据
NSDictionary *dict = dictionary[@"result"];
NSArray *arr = dict[@"list"];
NSDictionary *dic = arr[2];
NSLog(@"%@",dic[@"title"]);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
// 请求失败
NSLog(@"%@", [error localizedDescription]);
}];
运行效果:
由于【微信精选】该API可以同时支持GET请求以及POST请求,大家可以再测试一下使用AFNetworking中的GET请求方法来获取服务器数据。
示例代码
最后编辑时间为: September 13th , 2017 at 03:12 pm
本文由 99ios 创作,转载请注明出处