日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ASIHTTPRequest类库简介和使用说明

發(fā)布時間:2025/4/5 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASIHTTPRequest类库简介和使用说明 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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

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

在項目中簡單配置即可使用ASIHTTPRequest:
可以通過以下兩種方式往一個Xcode項目中添加第三方類庫文件:
1. 拖放到項目中。如果類庫文件沒有拷貝到項目文件目錄,則拷貝時要選中”Copy items into destination group's folder“的復(fù)選框。?

2. 在Xcode中,右鍵點擊項目文件彈出菜單中選擇”Add Files to XXX Project“菜單,在文件瀏覽對話框中選擇要添加的文件到項目中。同樣地,如果類庫文件沒有拷貝到項目文件目錄,則拷貝時要選中”Copy items into destination group's folder“的復(fù)選框。

根據(jù)這兩種方式之一,添加ASIHTTPRequest相關(guān)文件到Xcode項目中。然后進行鏈接類庫的操作,這一步很重要:
?1. 選擇項目
?2. 選擇目標(biāo)Target
?3. 跳轉(zhuǎn)到”Build Phases“標(biāo)簽項
?4. 展開”Link Binary With Libraries“分組
?5. 點擊”+“添加類庫
?

?6. 從列表中選擇CFNetwork.framework,然后點擊”Add“按鈕。

?7. 按照上一步方法添加:SystemConfiguration.framework,MobileCoreServices.framework,CoreGraphics.framework和libz.1.2.3.dylib這幾個類庫。
?8. 添加完后,可以將添加好的類庫拖到Xcode項目的Frameworks目錄下。

?使用說明:
在完成上述正確安裝配置后,在需要用到ASIHTTPRequest的代碼文件頭部,引入:
#import "ASIHTTPRequest.h"這句即可使用它的相關(guān)類。

示例:創(chuàng)建一個同步請求
這是ASIHTTPRequest最簡單的一種使用模式,發(fā)送startSynchronous消息后即開始在同一線程中執(zhí)行HTTP請求,線程將一直等待直到請求結(jié)束(請求成功或者失敗)。通過檢查error屬性可以判斷請求是否成功或者有錯誤發(fā)生。 要獲取返回的文本信息,調(diào)用responseString方法。如果下載的是二進制文件,如圖片、MP3,則調(diào)用responseData方法,可以得到一個NSData對象。代碼如下:

1 - (IBAction)grabURL:(id)sender 2 { 3 NSURL *url = [NSURL URLWithString:@"http://www.cnblogs.com"]; 4 ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 5 [request startSynchronous]; 6 NSError *error = [request error]; 7 if(!error) { 8 NSString *response = [request responseString]; 9 } 10 }

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

示例:創(chuàng)建一個異步請求
異步請求是在后臺線程中運行,當(dāng)請求執(zhí)行完后再通知調(diào)用的線程。這樣不會導(dǎo)致主線程進行網(wǎng)絡(luò)請求時,界面被鎖定等情況。

1 - (IBAction)grabURLInBackground:(id)sender 2 { 3 NSURL *url = [NSURL URLWithString:@"http://www.cnblogs.com"]; 4 ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 5 [request setDelegate:self]; 6 [request startAsynchronous]; 7 } 8 9 - (void)requestFinished:(ASIHTTPRequest *)request 10 { 11 //當(dāng)以文本形式讀取返回內(nèi)容時用這個方法 12 NSString *responseString = [request responseString]; 13 14 //當(dāng)以二進制形式讀取返回內(nèi)容時用這個方法 15 NSData *responseDate = [request responseData]; 16 } 17 18 - (void)requestFailed:(ASIHTTPRequest *)request 19 { 20 NSError *error = [request error]; 21 }


關(guān)于Xcode4.2下編譯”ASIHTTPRequest“開源項目的代碼時,出現(xiàn)”Declaration of ’struct sockaddr_in' will not be visible outside of this function“錯誤的解決方法:

引入頭文件:#import <netinet/in.h>

總結(jié)

以上是生活随笔為你收集整理的ASIHTTPRequest类库简介和使用说明的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。