AFNetWorking的使用比起ASI使用貌似更为简单,而且采用的也是自动内存管理。因此,使用的时候,只需要先把AFNetWorking的类加进来,导入头文件即可;使用起来也非常简单,基本上分为四步。
/* AFNworking使用思路
1 确定数据url
2 创建请求对象
3 设置请求类型
4 发送请求
ps 本博客基于的AFNetWorking的版本为2.x*/
GET与POST代码部分(练习的时候,可以使用本人上次在ASI使用的服务器 http://blog.csdn.net/csdn_hhg/article/details/49157899 )
#import "ViewController.h"
#import "AFNetworking.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self sendPostRequest];
}
#pragma mark - Request
-(void)sendPostRequest{
// 数据
NSString *urlstring = @"http://127.0.0.1:8080/A/a";
NSDictionary *dict =@{
@"command":@"1",
@"name":@"zhangsan",
@"psw":@"123456"
};
// 写请求对象
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
// 接收的输入类型
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
//post请求
[manager POST:urlstring parameters:dict success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@" %@ - %@",operation.responseString,responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@" 失败%@ ",[error localizedDescription]);
}];
}
-(void)sendGetRequest{
// 数据
NSString *urlstring = @"http://127.0.0.1:8080/A/a?command=0&name=1&psw=2&truename=2&email=1";
// 写请求对象
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
// 接收的输入类型
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
// get请求
[manager GET:urlstring parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@" %@ - %@",operation.responseString,responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@" 失败%@ ",[error localizedDescription]);
}];
}
@end
文件的下载实际上就是通过AFNworking发送get请求,返回一个文件,然后通过Nsdata的写入文件即可。
/* AFN文件下载 */
// 请求数据
NSString *urlString = @"http://d.hiphotos.baidu.com/image/pic/item/267f9e2f07082838e44bf5d5ba99a9014d08f1a9.jpg";
// 请求对象 单例
AFHTTPRequestOperationManager *getManager = [AFHTTPRequestOperationManager manager];
// 请求数据类型
getManager.responseSerializer = [AFImageResponseSerializer serializer];
// 发送请求
[getManager GET:urlString parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
// 发送请求成功
[operation.responseData writeToFile:@"/Users/xinguo/Desktop/myDownload.jpg" atomically:YES];
NSLog(@"下载成功");
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
// 发送失败
NSLog(@"%@", [error localizedDescription]);
}];
完整demo:http://download.csdn.net/detail/csdn_hhg/9200839