AFNetworking 學(xué)習(xí)筆記

AFNetwork是一個輕量級的網(wǎng)絡(luò)請求api類庫栓始。是以NSURLConnection, NSOperation和其他方法為基礎(chǔ)的。
Github:https://github.com/AFNetworking/AFNetworking/

下面這個例子是用來處理json請求的:

NSURL *url = [NSURL URLWithString:@"https://alpha-api.app.net/stream/0/posts/stream/global"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
    NSLog(@"App.net Global Stream: %@", JSON);
} failure:nil];
[operation start];

使用方法

1.下載AFNetwork,點擊下載
2.將文件夾名稱為AFNetworking拖入到你的工程項目即可

常見問題

  1. AFNetworking作用都有哪些派歌?
    NSURLConnection提供了+sendAsynchronousRequest:queue:completionHandler:和+sendAsynchronousRequest:queue:completionHandler: ,但是AFNetworking提供了更好的功能
    *AFURLConnectionOperation和它的子類繼承NSOperation的,允許請求被取消黍少,暫停/恢復(fù)和由NSOperationQueue進行管理。
    *AFURLConnectionOperation也可以讓你輕松得完成上傳和下載处面,處理驗證厂置,監(jiān)控上傳和下載進度,控制的緩存魂角。
    *AFHTTPRequestOperation和它得子類可以基于http狀態(tài)和內(nèi)容列下來區(qū)分是否成功請求了
    *AFNetworking可以將遠程媒體數(shù)據(jù)類型(NSData)轉(zhuǎn)化為可用的格式昵济,比如如JSON,XML或颊,圖像和plist砸紊。
    *AFHTTPClient提供了一個方便的網(wǎng)絡(luò)交互接口,包括默認頭囱挑,身份驗證醉顽,是否連接到網(wǎng)絡(luò),批量處理操作平挑,查詢字符串參數(shù)序列化游添,已經(jīng)多種表單請求
    *UIImageView+ AFNetworking增加了一個方便的方法來異步加載圖像。

  2. AFNetworking是否支持緩存通熄?
    可以唆涝,NSURLCache及其子類提供了很多高級接口用于處理緩存
    如果你想將緩存存儲再磁盤,推薦使用SDURLCache

  3. 如何使用AFNetworking上傳一個文件唇辨?

NSData *imageData = UIImagePNGRepresentation(image);
NSURLRequest *request = [client multipartFormRequestWithMethod:@"POST" path:@"/upload" parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData> formData) {
  [formData appendPartWithFileData:imageData mimeType:@"image/png" name:@"avatar"];
}];

4 .如何使用AFNetworking下載一個文件廊酣?
先創(chuàng)建一個AFURLConnectionOperation對象,然后再使用它的屬性outputStream進行處理

operation.outputStream = [NSOutputStream outputStreamToFileAtPath:@"download.zip" append:NO];
  1. 如何解決:SystemConfiguration framework not found in project
    請導(dǎo)入:
#import <SystemConfiguration/SystemConfiguration.h>
#import <MobileCoreServices/MobileCoreServices.h>
  1. 當(dāng)應(yīng)用程序退出時赏枚,如何保持持續(xù)的請求亡驰?
    AFURLConnectionOperation有一個叫setShouldExecuteAsBackgroundTaskWithExpirationHandler:的方法用于處理在應(yīng)用程序進入后臺后,進行持續(xù)的請求
[self setShouldExecuteAsBackgroundTaskWithExpirationHandler:^{
}];

一些實例

  1. XML 請求
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://api.flickr.com/services/rest/?method=flickr.groups.browse&api_key=b6300e17ad3c506e706cb0072175d047&cat_id=34427469792%40N01&format=rest"]];
AFXMLRequestOperation *operation = [AFXMLRequestOperation XMLParserRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, NSXMLParser *XMLParser) {
  XMLParser.delegate = self;
  [XMLParser parse];
} failure:nil];
[operation start];
  1. 圖片請求:
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 100.0f, 100.0f)];
[imageView setImageWithURL:[NSURL URLWithString:@"http://i.imgur.com/r4uwx.jpg"] placeholderImage:[UIImage imageNamed:@"placeholder-avatar"]];
  1. 圖片上傳處理饿幅,監(jiān)測上傳狀態(tài):
NSURL *url = [NSURL URLWithString:@"http://api-base-url.com"];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
NSData *imageData = UIImageJPEGRepresentation([UIImage imageNamed:@"avatar.jpg"], 0.5);
NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:@"/upload" parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
    [formData appendPartWithFileData:imageData name:@"avatar" fileName:@"avatar.jpg" mimeType:@"image/jpeg"];
}];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) {
    NSLog(@"Sent %lld of %lld bytes", totalBytesWritten, totalBytesExpectedToWrite);
}];
[operation start];

4.在線流媒體請求

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://localhost:8080/encode"]];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
operation.inputStream = [NSInputStream inputStreamWithFileAtPath:[[NSBundle mainBundle] pathForResource:@"large-image" ofType:@"tiff"]];
operation.outputStream = [NSOutputStream outputStreamToMemory];
[operation start];
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末凡辱,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子栗恩,更是在濱河造成了極大的恐慌透乾,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異乳乌,居然都是意外死亡捧韵,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門汉操,熙熙樓的掌柜王于貴愁眉苦臉地迎上來纫版,“玉大人,你說我怎么就攤上這事客情∑浔祝” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵膀斋,是天一觀的道長梭伐。 經(jīng)常有香客問我,道長仰担,這世上最難降的妖魔是什么糊识? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮摔蓝,結(jié)果婚禮上赂苗,老公的妹妹穿的比我還像新娘。我一直安慰自己贮尉,他們只是感情好拌滋,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著猜谚,像睡著了一般败砂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上魏铅,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天昌犹,我揣著相機與錄音,去河邊找鬼览芳。 笑死斜姥,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的沧竟。 我是一名探鬼主播铸敏,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼屯仗!你這毒婦竟也來了搞坝?” 一聲冷哼從身側(cè)響起搔谴,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤魁袜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體峰弹,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡店量,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了鞠呈。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片融师。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蚁吝,靈堂內(nèi)的尸體忽然破棺而出旱爆,到底是詐尸還是另有隱情,我是刑警寧澤窘茁,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布怀伦,位于F島的核電站,受9級特大地震影響山林,放射性物質(zhì)發(fā)生泄漏房待。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一驼抹、第九天 我趴在偏房一處隱蔽的房頂上張望桑孩。 院中可真熱鬧,春花似錦框冀、人聲如沸流椒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽镣隶。三九已至,卻和暖如春诡右,著一層夾襖步出監(jiān)牢的瞬間安岂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工帆吻, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留域那,地道東北人。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓猜煮,卻偏偏與公主長得像次员,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子王带,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容

  • AFNetwork是一個輕量級的網(wǎng)絡(luò)請求api類庫淑蔚。是以NSURLConnection, NSOperation和...
    MissLu16閱讀 802評論 0 3
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,097評論 1 32
  • iOS開發(fā)系列--網(wǎng)絡(luò)開發(fā) 概覽 大部分應(yīng)用程序都或多或少會牽扯到網(wǎng)絡(luò)開發(fā),例如說新浪微博愕撰、微信等刹衫,這些應(yīng)用本身可...
    lichengjin閱讀 3,658評論 2 7
  • 搞了兩年多iOS開發(fā)了醋寝,網(wǎng)絡(luò)請求這塊兒,一直用的ASIHttpRequest带迟,但是這個開源項目好長時間不維護音羞。據(jù)說...
    oneDemo閱讀 478評論 0 1
  • 【六項精進打卡】 2018.09.4 姓名:陳崗 企業(yè)名稱:上海孚因流體動力設(shè)備股份有限公司 打卡第134天 【知...
    我心依舊_79e2閱讀 221評論 0 0