一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

ASIHTTPRequest類庫簡介和使用說明

 求知665 2014-10-25

官方網(wǎng)站: http:///ASIHTTPRequest/ ??梢詮纳厦嫦螺d到最新源碼,以及獲取到相關(guān)的資料。

使用iOS SDK中的HTTP網(wǎng)絡(luò)請求API,相當(dāng)?shù)膹?fù)雜,調(diào)用很繁瑣,ASIHTTPRequest就是一個對CFNetwork API進(jìn)行了封裝,并且使用起來非常簡單的一套API,用Objective-C編寫,可以很好的應(yīng)用在Mac OS X系統(tǒng)和iOS平臺的應(yīng)用程序中。ASIHTTPRequest適用于基本的HTTP請求,和基于REST的服務(wù)之間的交互。

ASIHTTPRequest功能很強(qiáng)大,主要特色如下:

  • l 通過簡單的接口,即可完成向服務(wù)端提交數(shù)據(jù)和從服務(wù)端獲取數(shù)據(jù)的工作
  • l 下載的數(shù)據(jù),可存儲到內(nèi)存中或直接存儲到磁盤中
  • l 能上傳本地文件到服務(wù)端
  • l 可以方便的訪問和操作請求和返回的Http頭信息
  • l 可以獲取到上傳或下載的進(jìn)度信息,為應(yīng)用程序提供更好的體驗(yàn)
  • l 支持上傳或下載隊(duì)列,并且可獲取隊(duì)列的進(jìn)度信息
  • l 支持基本、摘要和NTLM身份認(rèn)證,在同一會話中授權(quán)憑證會自動維持,并且可以存儲在Keychain(Mac和iOS操作系統(tǒng)的密碼管理系統(tǒng))中
  • l 支持Cookie
  • l 當(dāng)應(yīng)用(iOS 4+)在后臺運(yùn)行時,請求可以繼續(xù)運(yùn)行
  • l 支持GZIP壓縮數(shù)據(jù)
  • l 內(nèi)置的ASIDownloadCache類,可以緩存請求返回的數(shù)據(jù),這樣即使沒有網(wǎng)絡(luò)也可以返回已經(jīng)緩存的數(shù)據(jù)結(jié)果
  • l ASIWebPageRequest –可以下載完整的網(wǎng)頁,包括包含的網(wǎng)頁、樣式表、腳本等資源文件,并顯示在UIWebView /WebView中。任意大小的頁面都可以無限期緩存,這樣即使沒有網(wǎng)絡(luò)也可以離線瀏覽
  • l 支持客戶端證書
  • l 支持通過代理發(fā)起Http請求
  • l 支持帶寬限制。在iOS平臺,可以根據(jù)當(dāng)前網(wǎng)絡(luò)情況來自動決定是否限制帶寬,例如當(dāng)使用WWAN(GPRS/Edge/3G)網(wǎng)絡(luò)時限制,而當(dāng)使用WIFI時不做任何限制
  • l 支持?jǐn)帱c(diǎn)續(xù)傳
  • l 支持同步和異步請求
2.1.1安裝說明

如果想在iOS項(xiàng)目中使用ASIHTTPRequest,需要在項(xiàng)目中進(jìn)行簡單的配置,步驟如下:

1) 添加文件

往一個Xcode項(xiàng)目中添加第三方類庫文件,有兩種方式:

1. 第一種方式,在Finder中打開需要添加到文件或文件夾,在Xcode中打開要添加文件的項(xiàng)目,然后選中要添加的文件或文件夾,將它從Finder中拖到Xcode中,然后釋放。在彈出的對話框中,如果文件已經(jīng)拷貝到了項(xiàng)目文件目錄中,則不需要選中“Copy items”的復(fù)選框;如果文件沒有拷貝到項(xiàng)目文件目錄,就需要選中“Copy items”的復(fù)選框,這樣Xcode會自動把文件復(fù)制到項(xiàng)目文件目錄下。如下圖所示:
clip_image002
clip_image004

2. 第二種方式,在Xcode中,在要添加文件的分組下點(diǎn)右鍵,選中“Add Files to “My Project”…”菜單,在彈出的文件瀏覽對話框中選中要添加到文件或文件夾。如果要添加文件已經(jīng)拷貝到了項(xiàng)目文件目錄中,則不需要選中“Copy items”的復(fù)選框;如果文件沒有拷貝到項(xiàng)目文件目錄,就需要選中“Copy items”的復(fù)選框,這樣Xcode會自動把文件復(fù)制到項(xiàng)目文件目錄下。如下圖所示:
clip_image006
clip_image008

根據(jù)上面的說明,添加ASIHTTPRequest相關(guān)文件到Xcode項(xiàng)目中,所需文件列表如下:

ASIHTTPRequestConfig.h

ASIHTTPRequestDelegate.h

ASIProgressDelegate.h

ASICacheDelegate.h

ASIHTTPRequest.h

ASIHTTPRequest.m

ASIDataCompressor.h

ASIDataCompressor.m

ASIDataDecompressor.h

ASIDataDecompressor.m

ASIFormDataRequest.h

ASIInputStream.h

ASIInputStream.m

ASIFormDataRequest.m

ASINetworkQueue.h

ASINetworkQueue.m

ASIDownloadCache.h

ASIDownloadCache.m

ASIAuthenticationDialog.h

ASIAuthenticationDialog.m

Reachability.h (在源碼的 External/Reachability 目錄下)

Reachability.m (在源碼的 External/Reachability 目錄下)

2) 鏈接相關(guān)類庫

1. 選中項(xiàng)目

2. 選中目標(biāo)

3. 跳轉(zhuǎn)到“Build Phases”標(biāo)簽

4. 展開“Link Binary With Libraries”分組

5. 點(diǎn)擊“+”添加類庫

如下圖所示:

clip_image010

6. 從列表中選擇CFNetwork.framework,然后點(diǎn)擊“Add”按鈕。

clip_image012

7. 按照上一步相同的方法添加:SystemConfiguration.framework, MobileCoreServices.framework,CoreGraphics.framework和libz.1.2.3.dylib這幾個類庫。

8. 添加完后,可以將添加好的一起類庫拖到Xcode項(xiàng)目的Frameworks目錄下
clip_image014

2.1.2使用說明

ASIHTTPRequest有很多功能,所有功能說明都可以在其官方網(wǎng)站的相關(guān)文檔中查到,限于篇幅,本章僅簡單介紹一下如何使用ASIHTTPRequest來進(jìn)行同步Http請求和異步Http請求。在后面的章節(jié)中,我們還會用到它的一些其他功能。

在使用ASIHTTPRequest之前,請確認(rèn)已經(jīng)正確安裝,然后在需要應(yīng)用它的代碼文件頭部,加入:

#import “ASIHTTPRequest.h”

這樣就可以在代碼中使用ASIHTTPRequest相關(guān)的類。

創(chuàng)建一個同步請求

這是ASIHTTPRequest最簡單的一種使用模式,發(fā)送startSynchronous消息后即開始在同一線程中執(zhí)行HTTP請求,線程將一直等待直到請求結(jié)束(請求成功或者失?。Mㄟ^檢查error屬性可以判斷請求是否成功或者有錯誤發(fā)生。

要獲取返回的文本信息,調(diào)用responseString方法。如果下載的是二進(jìn)制文件,例如圖片、MP3,則調(diào)用responseData方法,可以得到一個NSData對象。

- (IBAction)grabURL:(id)sender

{

NSURL *url = [NSURL URLWithString:@"http://"];

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];

[request startSynchronous];

NSError *error = [request error];

if (!error) {

NSString *response = [request responseString];

}

}

一般情況下,應(yīng)該優(yōu)先使用異步請求代替同步請求,當(dāng)在主線程中使用ASIHTTPRequest同步請求,應(yīng)用程序的界面會鎖定,無法進(jìn)行任何操作,直到請求完成。

創(chuàng)建一個異步請求

上例中的同步請求,如果換成異步方式來調(diào)用,請求是在后臺線程中運(yùn)行,當(dāng)請求執(zhí)行完后再通知調(diào)用的線程。這樣不會導(dǎo)致主線程進(jìn)行網(wǎng)絡(luò)請求時,界面被鎖定等情況。

- (IBAction)grabURLInBackground:(id)sender

{

NSURL *url = [NSURL URLWithString:@"http://"];

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];

[request setDelegate:self];

[request startAsynchronous];

}

- (void)requestFinished:(ASIHTTPRequest *)request

{

// 當(dāng)以文本形式讀取返回內(nèi)容時用這個方法

NSString *responseString = [request responseString];

// 當(dāng)以二進(jìn)制形式讀取返回內(nèi)容時用這個方法

NSData *responseData = [request responseData];

}

- (void)requestFailed:(ASIHTTPRequest *)request

{

NSError *error = [request error];

}

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产一区欧美一区日韩一区| 精品国产亚洲av成人一区| 亚洲中文字幕人妻av| 91午夜少妇极品福利| 国产日韩欧美专区一区| 成人亚洲国产精品一区不卡| 九九热精彩视频在线免费| 欧美中文字幕日韩精品| 亚洲黄片在线免费小视频| 美国黑人一级黄色大片| 中国美女草逼一级黄片视频| 国产精品欧美日韩中文字幕| 国产高清视频一区不卡| 精品国产av一区二区三区不卡蜜| 亚洲欧美日韩国产自拍| 国产又粗又爽又猛又黄的 | 亚洲一区二区三区国产| 日本中文字幕在线精品| 有坂深雪中文字幕亚洲中文| 狠狠做五月深爱婷婷综合| 国产又粗又猛又大爽又黄同志| 黄片在线观看一区二区三区| 亚洲最新的黄色录像在线| 欧美做爰猛烈叫床大尺度| 亚洲男人的天堂就去爱| 亚洲妇女黄色三级视频| 日韩欧美黄色一级视频| 欧美精品日韩精品一区| 国产传媒一区二区三区| 色综合久久超碰色婷婷| 日韩三极片在线免费播放| 老富婆找帅哥按摩抠逼视频| 91天堂免费在线观看| 日本欧美在线一区二区三区| 日韩精品一区二区三区射精 | 亚洲精品一二三区不卡| 日韩欧美国产精品中文字幕| 狠狠亚洲丁香综合久久| 国产不卡在线免费观看视频| 亚洲中文字幕在线乱码av| 91香蕉国产观看免费人人|