标签:
下面是使用AFNetWorking框架,在新浪微博发一条微博和请求豆瓣服务器的电影数据为例,简要说明利用AFNetWorking框架实现网络请求 :
1.导入AFNetWorking框架;
2.在ViewController.m文件进行网络请求;
//POST方式
- (void)POST{
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
//1.URL
//2.请求参数
//access_token=2.00ihO9wBbx1h4Dea60be901dPLdrlB&status=呵呵
//字典中存放微博的令牌(自己独有的)和发布的内容
NSDictionary *dic = @{@"access_token":@"2.00ihO9wBbx1h4Dea60be901dPLdrlB",@"status":@"AFHAHAHAHA"};
//设置请求头
[manager.requestSerializer setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"];
//发送网络请求
[manager POST:@"https://api.weibo.com/2/statuses/update.json" parameters:dic success:^(NSURLSessionDataTask *task, id responseObject) {
NSLog(@"发送成功");
} failure:^(NSURLSessionDataTask *task, NSError *error) {
NSLog(@"发送失败");
}];
}
//GET方式请求
- (void)GET{
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
//1.URL
NSString *urlString = @"http://api.douban.com/v2/movie/top250";
//2.请求参数
NSDictionary *dic = @{@"count" : @"2"};
//3.设置请求参数的格式
/**
&拼接 count=2&..
JSON格式 {count : 2}
AFHTTPRequestSerializer :&拼装格式
AFJSONRequestSerializer : JSON数据格式
*/
manager.requestSerializer = [AFJSONRequestSerializer serializer];
//4.设置服务器返回的数据的解析方式(默认以JSON解析)
/**
AFHTTPResponseSerializer,不解析
AFJSONResponseSerializer,JSON解析
AFXMLParserResponseSerializer,XML解析
*/
//以XML的方式解析数据
//manager.responseSerializer = [AFXMLParserResponseSerializer serializer];
//以JSON的方式解析数据
//manager.responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingMutableContainers];
//不解析,返回的是NSData类型
// manager.responseSerializer = [AFHTTPResponseSerializer serializer];
//发送GET请求
[manager GET:urlString parameters:dic success:^(NSURLSessionDataTask *task, id responseObject) {
//请求成功以后调用的blcok
NSLog(@"%@",responseObject);
} failure:^(NSURLSessionDataTask *task, NSError *error) {
//请求失败以后调用的blcok
}];
}
3.注意点:
注意POST和GET的区别,一般情况下,请求网络数据用GET,而发送数据给服务器则需要POST,POST相比与GET更安全.
标签:
原文地址:http://www.cnblogs.com/pengsi/p/4846128.html