西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
西西首頁 電腦軟件 安卓軟件 電腦游戲 安卓游戲 排行榜 專題合集

AFNetworking

3.0.4 官方版
  • AFNetworking3.0.4 官方版
  • 軟件大小:452KB
  • 更新時(shí)間:2015-12-29 10:53
  • 軟件語言:中文
  • 軟件廠商:
  • 軟件類別:國產(chǎn)軟件 / 免費(fèi)軟件 / 編程控件
  • 軟件等級:4級
  • 應(yīng)用平臺:WinAll, Win7, Mac
  • 官方網(wǎng)站:https://github.com/AFNetworking/AFNetwor
  • 應(yīng)用備案:
好評:50%
壞評:50%

本類精品

軟件介紹

AFNetworking是一款在OS X和iOS下都令人喜愛的網(wǎng)絡(luò)庫。AFNetworking適用于iOS以及Mac OS X. 它構(gòu)建于在NSURLConnection, NSOperation, 以及其他熟悉的Foundation技術(shù)之上. 它擁有良好的架構(gòu),豐富的api,以及模塊化構(gòu)建方式,使得使用起來非常輕松。

為了迎合iOS新版本的升級, AFNetworking在3.0版本中刪除了基于 NSURLConnection API的所有支持。如果你的項(xiàng)目以前使用過這些API,建議您立即升級到基于 NSURLSession 的API的AFNetworking的版本。本指南將引導(dǎo)您完成這個(gè)過程。

CORE:

AFURLConnectionOperation:一個(gè) NSOperation 實(shí)現(xiàn)了NSURLConnection 的代理方法.

HTTP Requests:

AFHTTPRequestOperation:AFURLConnectionOperation的子類,當(dāng)request使用的協(xié)議為HTTP和HTTPS時(shí),它壓縮了用于決定request是否成功的狀態(tài)碼和內(nèi)容類型.

AFJSONRequestOperation:AFHTTPRequestOperation的一個(gè)子類,用于下載和處理jason response數(shù)據(jù).

AFXMLRequestOperation:AFHTTPRequestOperation的一個(gè)子類,用于下載和處理xml response數(shù)據(jù).

AFPropertyListRequestOperation:AFHTTPRequestOperation的一個(gè)子類,用于下載和處理property list response數(shù)據(jù).

HTTP CLIENT:

AFHTTPClient:捕獲一個(gè)基于http協(xié)議的網(wǎng)絡(luò)應(yīng)用程序的公共交流模式.包含:

使用基本的url相關(guān)路徑來只做request

為request自動添加設(shè)置http headers.

使用http 基礎(chǔ)證書或者OAuth來驗(yàn)證request

為由client制作的requests管理一個(gè)NSOperationQueue

從NSDictionary生成一個(gè)查詢字符串或http bodies.

從request中構(gòu)建多部件

自動的解析http response數(shù)據(jù)為相應(yīng)的表現(xiàn)數(shù)據(jù)

在網(wǎng)絡(luò)可達(dá)性測試用監(jiān)控和響應(yīng)變化.

IMAGES

AFImageRequestOperation:一個(gè)AFHTTPRequestOperation的子類,用于下載和處理圖片.

UIImageView+AFNetworking:添加一些方法到UIImageView中,為了從一個(gè)URL中異步加載遠(yuǎn)程圖片

AFNetworking使用總結(jié)

1 將AFNetWorking文件夾導(dǎo)入項(xiàng)目

2 添加類庫 Security.framework、MobileCoreServices.framework、SystemConfiguration.framework

3 在使用的地方 #import "AFNetworking.h"

解決編譯時(shí)警告:

Prefix.pch文件中加入  #import <SystemConfiguration/SystemConfiguration.h>  #import <MobileCoreServices/MobileCoreServices.h>  

注:AFNetWorking使用了ARC ,在不使用ARC項(xiàng)目中使用時(shí),對AFNetWorking的所有.m文件添加“-fobjc-arc” 

  在使用ARC項(xiàng)目中,使用“不使用ARC”的類庫時(shí),對類庫的.m文件添加“-fno-objc-arc”

AFHTTPRequestOperation 核心代碼

與NSURLConnection對象不同,每個(gè)共享應(yīng)用范圍的設(shè)置如會話管理、緩存策略、Cookie存儲以及URL協(xié)議等,這些NSURLSession對象都可以單獨(dú)進(jìn)行配置。使用特定的配置來初始化會話,它可以發(fā)送任務(wù)來獲取數(shù)據(jù),并上傳或下載文件。

在AFNetworking 2.0中,使用AFHTTPRequestOperation,有可能創(chuàng)建一個(gè)沒有額外開銷的獨(dú)立的網(wǎng)絡(luò)請求來獲取數(shù)據(jù)。NSURLSession則需要更多的開銷,為了獲得所要請求的數(shù)據(jù)。

接下來,將要通過AFHTTPSessionManager創(chuàng)建一個(gè)對象,并創(chuàng)建一個(gè)任務(wù)和啟動它。

iOS- 利用AFNetworking(AFN) - 實(shí)現(xiàn)圖片上傳

 官方建議AFN的使用方法

 1. 定義一個(gè)全局的AFHttpClient:包含有

    1> baseURL

    2> 請求

    3> 操作隊(duì)列 NSOperationQueue

 2. 由AFHTTPRequestOperation負(fù)責(zé)所有的網(wǎng)絡(luò)操作請求

 3. 修改xxx-Prefix.pch文件

#import <MobileCoreServices/MobileCoreServices.h>

#import <SystemConfiguration/SystemConfiguration.h>

0.導(dǎo)入框架準(zhǔn)備工作

•1. 將框架程序拖拽進(jìn)項(xiàng)目

•2.  添加iOS框架引用

–SystemConfiguration.framework

–MobileCoreServices.framework

•3.  引入

#import "AFNetworking.h"

1.AFN的客戶端,使用基本地址初始化,同時(shí)會實(shí)例化一個(gè)操作隊(duì)列,以便于后續(xù)的多線程處理

1 @interfaceViewController () 2
3 { 4
5     // AFN的客戶端,使用基本地址初始化,同時(shí)會實(shí)例化一個(gè)操作隊(duì)列,以便于后續(xù)的多線程處理 6
7     AFHTTPClient    *_httpClient;17     NSOperationQueue *_queue;18
19 }
1 - (void)viewDidLoad2 {3     [super viewDidLoad];4    
5     NSURL *url = [NSURL URLWithString:@"http://192.168.3.255/~apple/qingche"];6     _httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];7    
8     _queue = [[NSOperationQueue alloc] init];9 }

2.利用AFN實(shí)現(xiàn)文件上傳操作細(xì)節(jié)

1 #pragma mark - 文件上傳 2 - (IBAction)uploadImage 3 { 4     /*
5      此段代碼如果需要修改,可以調(diào)整的位置
6      
7      1. 把upload.php改成網(wǎng)站開發(fā)人員告知的地址
8      2. 把file改成網(wǎng)站開發(fā)人員告知的字段名
9      */10     // 1. httpClient->url11    
12     // 2. 上傳請求POST13     NSURLRequest *request = [_httpClient multipartFormRequestWithMethod:@"POST" path:@"upload.php" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {14         // 在此位置生成一個(gè)要上傳的數(shù)據(jù)體15         // form對應(yīng)的是html文件中的表單16        
17        
18         UIImage *image = [UIImage imageNamed:@"頭像1"];19         NSData *data = UIImagePNGRepresentation(image);20        
21         // 在網(wǎng)絡(luò)開發(fā)中,上傳文件時(shí),是文件不允許被覆蓋,文件重名22         // 要解決此問題,23         // 可以在上傳時(shí)使用當(dāng)前的系統(tǒng)事件作為文件名24         NSDateFormatter *formatter = [[NSDateFormatter alloc] init];25         // 設(shè)置時(shí)間格式26         formatter.dateFormat = @"yyyyMMddHHmmss";27         NSString *str = [formatter stringFromDate:[NSDate date]];28         NSString *fileName = [NSString stringWithFormat:@"%@.png", str];29        
30        
31         /*32          此方法參數(shù)
33          1. 要上傳的[二進(jìn)制數(shù)據(jù)]
34          2. 對應(yīng)網(wǎng)站上[upload.php中]處理文件的[字段"file"]
35          3. 要保存在服務(wù)器上的[文件名]
36          4. 上傳文件的[mimeType]
37          */38         [formData appendPartWithFileData:data name:@"file" fileName:fileName mimeType:@"image/png"];39     }];40    
41     // 3. operation包裝的urlconnetion42     AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:request];43    
44     [op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {45         NSLog(@"上傳完成");46     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {47         NSLog(@"上傳失敗->%@", error);48     }];49    
50     //執(zhí)行51     [_httpClient.operationQueue addOperation:op];

其他版本下載

發(fā)表評論

昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
查看所有(0)條評論 > 字?jǐn)?shù): 0/500

TOP
軟件下載