IOS网络--AFNetworking

http://cocoadocs.org/docsets/AFNetworking/2.5.0/

AFNetworking的用法

  1. 提交GET请求和POST请求

AFNetworking是第三方框架,阅者自行去官网上下载、安装。

1>创建AFHTTPRequestOpeartionManger对象

2>根据服务器内容不同,为AFHTTPRequestOpeartionManger对象指定不同的解析器,该对象默认的解析器是JSON和plist文件解析器。

3>发送GET请求,用Manager对象调用GET方法即可,success代码块和failure代码块是在网络请求成功/失败后调用。

4>success参数指定了代码块中处理服务器响应成功的正确数据;failure参数指定了代码块中处理服务器响应失败的错误数据。

AFHTTPRquestOperationManager

包含了常见的HTTP访问web站点的模式,有创建请求、连接响应、网络类型监视等。

“GET”请求格式:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
//调用get方法
[manager GET:@“http://example.com/resources.json”  parameters:parameters 
//加载成功的代码块
success:^(AFHTTPRequestOperation *operation,id responseObject)
         {
             NSLog(@"JSON:%@",responseObject);
         }
//加载失败的代码块
failure:^(AFHTTPRequestOperation *operation,NSError *error)
         {
             NSLog(@"Error:%@",error);
         }];

"POST"请求格式:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *parameters = @{@"foo": @"bar"};
[manager POST:@"http://example.com/resources.json" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];

"POST"多个请求

//创建对象
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
//请求内容
NSDictionary *parameters = @{@"foo": @"bar"};
//请求地址
NSURL *filePath = [NSURL fileURLWithPath:@"file://path/to/image.png"];
[manager POST:@"http://example.com/resources.json" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    [formData appendPartWithFileURL:filePath name:@"image" error:nil];
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"Success: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];

2.创建一个下载文件任务

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
NSURL *URL = [NSURL URLWithString:@"http://example.com/download.zip"];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
    NSURL *documentsDirectoryURL = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:NO error:nil];
    return [documentsDirectoryURL URLByAppendingPathComponent:[response suggestedFilename]];
} completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
    NSLog(@"File downloaded to: %@", filePath);
}];
[downloadTask resume];

3.创建一个跟新(上传)文件任务

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
NSURL *URL = [NSURL URLWithString:@"http://example.com/upload"];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
NSURL *filePath = [NSURL fileURLWithPath:@"file://path/to/image.png"];
NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithRequest:request fromFile:filePath progress:nil completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
    if (error) {
        NSLog(@"Error: %@", error);
    } else {
        NSLog(@"Success: %@ %@", response, responseObject);
    }
}];
[uploadTask resume];

4.处理JSON或plist响应

IOS应用在处理JSON和Plist响应的时候可以将其转换成NSDictionary对象或是NSArray对象,AFHTTPRequestOperationManager默认可以处理JSON或plist响应,因此当响应内容默认为JSON时,无需再次指定服务器响应解析器。

NSDictionary *temDic = [[NSDictionary alloc] init];

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
        NSString *url = @"http://api.map.baidu.com/telematics/v3/weather?";
        NSDictionary *parameters = @{@"location":@"长沙",@"output":@"json",@"ok":@"akljhgffg"};
        [manager GET:url parameters:parameters success:^(AFHTTPRequestOperation *operation,id responseObject)
         {
             NSLog(@"JSON:%@",responseObject);
             temDic = responseObject;
             
             
         }failure:^(AFHTTPRequestOperation *operation,NSError *error)
         {
             NSLog(@"Error:%@",error);
         }];



http://www.cocoachina.com/ios/20141120/10265.html

 

转载于:https://my.oschina.net/u/2312022/blog/387606

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值