国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

IOS開發(fā)之AFNetworking開源庫的使用

2019-11-14 19:13:47
字體:
供稿:網(wǎng)友

IOS開發(fā)之AFNetworking開源庫的使用

1.簡介

  常見的處理網(wǎng)絡(luò)請求方式

  (1)NSURLConnection/NSURLsession

  (2)ASIHttPRequest 早期項目中比較常見, 由于作者不更新了

  (3)AFNetworking 推薦使用, 項目中使用

  (4)MKNetworkKit 試試

2.配置和使用

  2.1 配置 

    庫文件拖入工程中, 包含頭文件 

    #import "AFNetworking.h"

  2.2 使用

     2.2.1.GET請求(html,json,xml

-(void)testGetRequest{        NSString *urlstring = @"http://www.baidu.com";    urlstring = @"http://m.weather.com.cn/data/101010100.html";    urlstring = @"http://mp.manzuo.com/china/beijing/home_2.xml";        //定義AFNetworking管理    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];        //注意:默認數(shù)據(jù)是JSON,content-type也是JSON,responSEObject是解析字典和數(shù)組,不是產(chǎn)生錯誤Code=-1016    //解決:設(shè)置解析器為HTTP形式,下載回來是NSData    manager.responseSerializer = [AFCompoundResponseSerializer serializer];        [manager GET:urlstring parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {//        responseObject重要參數(shù),包含下載數(shù)據(jù)//        NSLog(@"o = %@",responseObject);                NSString *str = [[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding];        NSLog(@"str = %@",str);            } failure:^(AFHTTPRequestOperation *operation, NSError *error) {        NSLog(@"error = %@",error);    }];}
testGetRequest

     2.2.2.POST請求

-(void)testPostRequest{    //POST接口:    //參數(shù)1:@"user" : @"quiet"    //參數(shù)2:@"passWord" : @"123"        NSString *urlString = @"http://quiet.local/testdir/login.php";        AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];    manager.responseSerializer = [AFCompoundResponseSerializer serializer];        //參數(shù)1:傳入地址    //參數(shù)2:傳入URL請求的參數(shù),格式傳入字典    [manager POST:urlString parameters:@{@"user": @"quiet",@"password" : @"123"} success:^(AFHTTPRequestOperation *operation, id responseObject) {         NSString *str = [[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding];        NSLog(@"str = %@",str);    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {        NSLog(@"error = %@",error);    }];}
testPostRequest

     2.2.3.上傳文件(上傳圖片)

-(void)testUploadFile{        //POST上傳的接口    NSString *urlString = @"http://quiet.local/uploadtest/pk.php";    //參數(shù)名:image : 參數(shù)值是圖片    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];    manager.responseSerializer = [AFCompoundResponseSerializer serializer];        [manager POST:urlString parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {        NSString *path = [[NSBundle mainBundle]pathForResource:@"daji.jpg" ofType:nil];                [formData appendPartWithFileURL:[NSURL URLWithString:path] name:@"image" fileName:@"666.jpg" mimeType:@"image/jpeg" error:nil];    } success:^(AFHTTPRequestOperation *operation, id responseObject) {        NSString *str = [[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding];        NSLog(@"str = %@",str);    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {         NSLog(@"error = %@",error);    }];            [manager POST:urlString parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {                //實現(xiàn):上傳的數(shù)據(jù)附加到請求體中        //fileName:上傳后的文件名        //mimeType:需要上網(wǎng)搜索mime,把相應(yīng)的格式復(fù)制過來        NSString *path = [[NSBundle mainBundle]pathForResource:@"daji.jpg" ofType:nil];            [formData appendPartWithFileURL:[NSURL fileURLWithPath:path] name:@"image" fileName:@"666.jpg" mimeType:@"image/jpeg" error:nil];                } success:^(AFHTTPRequestOperation *operation, id responseObject) {        NSString *str = [[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding];        NSLog(@"str = %@",str);    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {        NSLog(@"error = %@",error);    }];    }
testUploadFile

 

     2.2.4.下載文件

-(void)testDownloadFile{    NSString *urlString = @"http://imgcache.QQ.com/club/item/avatar/zip/7/i87/all.zip";        //創(chuàng)建會話管理對象(通過默認配置)    AFURLSessionManager *manager = [[AFURLSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];    NSURLSessionDownloadTask *task = [manager downloadTaskWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]] progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {                //返回文件保存的位置        NSString *path = [NSString stringWithFormat:@"%@/Documents/all.zip",NSHomeDirectory()];        NSLog(@"%@",NSHomeDirectory());        return [NSURL fileURLWithPath:path];            } completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {        NSLog(@"下載完成");    }];        //啟動任務(wù)    [task resume];    }
testDownloadFile

     2.2.5.監(jiān)控網(wǎng)絡(luò)狀態(tài)

-(void)testMonitorNetworkStatus{        AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc]initWithBaseURL:[NSURL URLWithString:@"www.baidu.com"]];    [manager.reachabilityManager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {        NSDictionary *dict = @{            @(AFNetworkReachabilityStatusUnknown): @"未知",            @(AFNetworkReachabilityStatusNotReachable): @"不可達",            @(AFNetworkReachabilityStatusReachableViaWWAN): @"GPRS",            @(AFNetworkReachabilityStatusReachableViaWiFi): @"Wifi",            };        NSLog(@"狀態(tài)為 %@",dict[@(status)]);            }];    //開啟狀態(tài)監(jiān)視    [manager.reachabilityManager startMonitoring];}
testMonitorNetworkStatus

     2.2.6.圖片異步功能(替代SDWebImage

          導(dǎo)入頭文件

          #import "UIKit+AFNetworking.h"

          - (void)setImageWithURL:(NSURL *)url;

     2.2.7.有一些特殊的請求頭

         BAIDU_WISE_UID=wapp_1428385381699_466;

         AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];  

         [manager.requestSerializer setValue:@"wapp_1428385381699_466" forHTTPHeaderField:@"BAIDU_WISE_UID"]; 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 吴旗县| 抚远县| 杭锦旗| 合川市| 乌拉特中旗| 历史| 西乌| 南丰县| 济源市| 泰顺县| 武威市| 阳泉市| 九江县| 平江县| 甘泉县| 浏阳市| 仙游县| 乳山市| 板桥市| 金阳县| 安乡县| 观塘区| 福泉市| 田阳县| 泰州市| 商洛市| 苍山县| 琼海市| 奇台县| 尉氏县| 黎平县| 镇远县| 察哈| 新邵县| 南安市| 砚山县| 达拉特旗| 镇平县| 六安市| 翁牛特旗| 定边县|