麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

藍(lán)懿iOSAFNetwoking原理及常用操作

2019-11-14 17:52:41
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

AFN的六大模塊


  • NSURLConnection,主要對(duì)NSURLConnection進(jìn)行了進(jìn)一步的封裝,包含以下核心的類:

    • AFURLConnectionOperation
    • AFHTTPRequestOperationManager
    • AFHTTPRequestOperation
  • NSURLsession,主要對(duì)象NSURLSession對(duì)象進(jìn)行了進(jìn)一步的封裝,包含以下核心的類:

    • AFURLSessionManager
    • AFHTTPSessionManager
  • Reachability,提供了與網(wǎng)絡(luò)狀態(tài)相關(guān)的操作接口,包含以下核心的類:

    • AFNetworkReachabilityManager
  • Security,提供了與安全性相關(guān)的操作接口,包含以下核心的類:

    • AFSecurityPolicy
  • Serialization,提供了與解析數(shù)據(jù)相關(guān)的操作接口,包含以下核心的類:

    • AFURLRequestSerialization
    • AFURLResponseSerialization
  • UIKit,提供了大量網(wǎng)絡(luò)請(qǐng)求過程中與UI界面顯示相關(guān)的操作接口,通常用于網(wǎng)絡(luò)請(qǐng)求過程中提示,使用戶交互更加友好,包含以下核心的分類/類:

    • AFNetworkActivityIndicatorManager
    • UIActivityIndicatorView+AFNetworking
    • UIAlertView+AFNetworking
    • UIButton+AFNetworking
    • UIImageView+AFNetworking
    • UIKit+AFNetworking
    • UiprogressView+AFNetworking
    • UIRefreshControl+AFNetworking
    • UIWebView+AFNetworking

AFURLSessionManager


  • 創(chuàng)建任務(wù)的方法

    • 普通任務(wù)

      - (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request completionHandler:(void (^)(NSURLResponse *response, id responSEObject, NSError *error))completionHandler/*** request:請(qǐng)求對(duì)象* completionHandler:請(qǐng)求完成調(diào)用的Block 	* response:服務(wù)器的響應(yīng)信息	* responseObject:服務(wù)器返回的數(shù)據(jù)	* error:錯(cuò)誤信息*/
    • 上傳任務(wù)(分別上傳不同類型的文件)

      // 1. 上傳文件類型的數(shù)據(jù)- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request fromFile:(NSURL *)fileURL progress:(NSProgress * __autoreleasing *)progress completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler/*** fileURL:所要上傳文件的路徑*/// 2. 上傳NSData類型的數(shù)據(jù)- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request fromData:(NSData *)bodyData progress:(NSProgress * __autoreleasing *)progress completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler/*** bodyData:所要上傳的文件數(shù)據(jù)*/// 3. 上傳流數(shù)據(jù)- (NSURLSessionUploadTask *)uploadTaskWithStreamedRequest:(NSURLRequest *)request progress:(NSProgress * __autoreleasing *)progress completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler/*** request:通過流數(shù)據(jù)初始化的請(qǐng)求對(duì)象*/
    • 下載任務(wù)

      // 1. 普通下載任務(wù)- (NSURLSessionDownloadTask *)downloadTaskWithRequest:(NSURLRequest *)request progress:(NSProgress * __autoreleasing *)progress destination:(NSURL * (^)(NSURL *targetPath, NSURLResponse *response))destination completionHandler:(void (^)(NSURLResponse *response, NSURL *filePath, NSError *error))completionHandler/*** progress:管理下載進(jìn)度* destination:保存數(shù)據(jù)調(diào)用的Block	* targetPath:數(shù)據(jù)的保存路徑	* 服務(wù)器的響應(yīng)信息*/// 2. 支持?jǐn)帱c(diǎn)下載的下載任務(wù)- (NSURLSessionDownloadTask *)downloadTaskWithResumeData:(NSData *)resumeData progress:(NSProgress * __autoreleasing *)progress destination:(NSURL * (^)(NSURL *targetPath, NSURLResponse *response))destination completionHandler:(void (^)(NSURLResponse *response, NSURL *filePath, NSError *error))completionHandler /*** progress:管理下載進(jìn)度* resumeData:斷點(diǎn)下載時(shí)的斷點(diǎn)信息*/                                   

AFHTTPSessionManager


  • 常用的屬性

    • baseURL(NSURL *),用于監(jiān)視網(wǎng)絡(luò)可達(dá)性與創(chuàng)建請(qǐng)求對(duì)象
    • requestSerializer(AFHTTPRequestSerializer *),指定指定GET、HEAD與DELETE請(qǐng)求參數(shù)的解析格式
    • responseSerializer(AFHTTPResponseSerializer *),用于指定服務(wù)器返回?cái)?shù)據(jù)的格式
  • 常用方法

    • 初始化

      // 1. 通過工廠方法創(chuàng)建AFHTTPSessionManager對(duì)象+ (instancetype)manager// 2. 通過構(gòu)造方法創(chuàng)建AFHTTPSessionManager對(duì)象- (instancetype)initWithBaseURL:(NSURL *)url/*** 根據(jù)url初始化AFHTTPSessionManager對(duì)象*/- (instancetype)initWithBaseURL:(NSURL *)url sessionConfiguration:(NSURLSessionConfiguration *)configuration/*** 根據(jù)url與configuration初始化AFHTTPSessionManager對(duì)象*/
    • 請(qǐng)求數(shù)據(jù)

      // 1. GET請(qǐng)求- (NSURLSessionDataTask *)GET:(NSString *)URLString parameters:(id)parameters success:(void (^)(NSURLSessionDataTask *task, id responseObject))success failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure/*** URLString:請(qǐng)求路徑* parameters:請(qǐng)求參數(shù)* success:請(qǐng)求成功時(shí)調(diào)用的Block	* responseObject:服務(wù)器返回的數(shù)據(jù)* failure:請(qǐng)求失敗時(shí)調(diào)用的Block	* error:錯(cuò)誤信息*/// 2. POST請(qǐng)求- (NSURLSessionDataTask *)POST:(NSString *)URLString parameters:(id)parameters success:(void (^)(NSURLSessionDataTask *task, id responseObject))success failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure/*** 參數(shù)含義與GET請(qǐng)求相同*/- (NSURLSessionDataTask *)POST:(NSString *)URLString parameters:(id)parameters constructingBodyWithBlock:(void (^)(id <AFMultipartFormData> formData))block success:(void (^)(NSURLSessionDataTask *task, id responseObject))success failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure/*** block:用于創(chuàng)建多個(gè)數(shù)據(jù)來(lái)源*/

使用AFN請(qǐng)求網(wǎng)絡(luò)數(shù)據(jù)


  • 請(qǐng)求數(shù)據(jù)(xml/JSON)

    • 創(chuàng)建AFHTTPSessionManager對(duì)象

      AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    • 指定對(duì)服務(wù)器的返回?cái)?shù)據(jù)格式

      //以XML文檔的形式返回?cái)?shù)據(jù)manager.responseSerializer = [AFXMLParserResponseSerializer serializer];//以JSON形式返回?cái)?shù)據(jù)manager.responseSerializer = [AFJSONResponseSerializer serializer];
    • 設(shè)置請(qǐng)求體(類型為XML或JSON)

      // 請(qǐng)求體通常由服務(wù)器指定格式	NSDictionary *params = @{                         @"username" : @"賬號(hào)",                         @"pwd" : @"密碼",                         @"type" : @"XML/JSON"                         };                             
    • 發(fā)送請(qǐng)求

      [manager GET:@"請(qǐng)求路徑" parameters:params success:^(NSURLSessionDataTask *task, id responseObject) {	//responseObject:服務(wù)器返回的數(shù)據(jù)    NSLog(@"請(qǐng)求成功");} failure:^(NSURLSessionDataTask *task, NSError *error) {	//error:錯(cuò)誤信息    NSLog(@"請(qǐng)求失敗");}];
  • 上傳數(shù)據(jù)

    • 創(chuàng)建AFHTTPSessionManager對(duì)象

      AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    • 創(chuàng)建上傳任務(wù)

      /**基于NSURLConnection*/[manager POST:@"請(qǐng)求路徑" parameters:@{@"用戶名" : @"密碼" constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 	//設(shè)置需要上傳的文件    NSData *data = [NSData dataWithContentsOfFile:@"所要長(zhǎng)傳文件的路徑"];    [formData appendPartWithFileData:data name:@"file" fileName:@"test.png" mimeType:@"image/png"];} success:^(NSURLSessionDataTask *task, id responseObject) {          //上傳成功} failure:^(NSURLSessionDataTask *task, NSError *error) {    //上傳失敗}];/**基于NSURLSession*/[manager uploadTaskWithRequest:request fromData:data progress:progress completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {    //上傳數(shù)據(jù)成功}];
  • 下載數(shù)據(jù)

    • 創(chuàng)建AFHTTPSessionManager對(duì)象

      AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    • 創(chuàng)建下載任務(wù)

      /**基于NSURLSession*/[manager downloadTaskWithRequest:request progress:progress destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {    // 存儲(chǔ)下載數(shù)據(jù)是調(diào)用的Block} completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {    //下載完成時(shí)調(diào)用的Block}]

       

 
 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美一级做一级爱a做片性 久久久资源网 | 欧美日比视频 | 欧美一级电影网站 | 久久一级 | 久久这 | 男女无套免费视频 | 视频二区国产 | 午夜视频在线观看免费视频 | 98国内自拍在线视频 | 国产午夜精品一区二区三区四区 | 毛片小网站| 久久成人免费网站 | 午夜九九九 | 免费在线看a | 黄色成人在线 | 一级国产免费 | 一分钟免费观看完整版电影 | 2023av在线视频 | 蜜桃91麻豆 | 污黄视频在线观看 | 国产流白浆高潮在线观看 | 99精品国产小情侣高潮露脸在线 | 国内毛片视频 | fc2成人免费人成在线观看播放 | 一本色道久久综合狠狠躁篇适合什么人看 | 中国美女一级黄色片 | 欧美日韩亚洲在线观看 | 369看片你懂的小视频在线观看 | 中文字幕精品亚洲 | 黄色a级片免费观看 | 欧美城网站地址 | 国产精品久久久久久久久久久久久久久 | 99视频在线观看视频 | 久久96国产精品久久久 | 99在线热视频 | 成人福利在线播放 | 亚洲特黄a级毛片在线播放 久久久入口 | 国产精品亚洲综合一区二区三区 | 久久经典国产视频 | 一级在线观看 | 欧美成人一级片 |