它提供如下功能:
提交資料到web伺服器或者從web伺服器獲得資料;
採用html input相同的機制上傳檔案;
斷點續傳;
簡單訪問http頭;
支援cookie;
後台執行(ios4.0以上支援);
對於請求和響應的gzip支援;
支援客戶端證書;
支援同步/非同步請求
關於它的介紹網上已經有很多了,該專案有很詳細的指南文件: howto use asihttprequest,也有網友翻譯成中文了。本文沒有完全照搬官方文件的內容,而是著重介紹了幾個常見的應用,並涵蓋了一些自己的理解和實際應用經驗,包括:
注意,雖然這些技術在本文中是分開講述的,但在實際工作中,往往是多種技術結合應用的。
此外,http 請求往往伴隨著 xml 技術的應用,實際上asihttprequest 是可以和 sax 非同步解析結合應用的,這部分內容請參考作者另一博文《 asihttprequest和libxml結合,實現邊請求邊解析》。
開啟該目錄,其目錄中包含了:
乙個iphone xcode專案(原始檔)
乙個mac xcode專案(原始檔)
乙個iphone下使用的sample code(原始檔)
乙個mac下使用的sample code(原始檔)
乙個readme.texttile,關於該項目的介紹
其實所有的內容都在其中了,如果你是初學者,不知到怎麼下手,可以看
這裡有乙份詳細的入門指南。
現在,我們要做的就是,在自己的專案中使用它。
一、在專案中使用asihttprequest
1、拷貝原始檔到專案中
asihttprequest 是乙個開源專案,要使用他,直接拷貝專案原始檔到你的專案中,包括下列檔案(即classes下所有檔案和external/reachability下所有檔案):
對於 iphone,還要拷貝下列檔案:
2、新增依賴庫
asihttprequest 依賴於以下5個框架或庫:
cfnetwork, systemconfiguration,mobilecoreservices, coregraphics 和 libz1.2.3。
依次將上述庫和框架新增到 target 的 linked libraries中。
二、簡單的同步請求示例
新建 ios 專案,加入必需的原始檔和 linkedlibraries。
往 mainwindow.xib 中新增乙個 uiview和乙個uibutton,在 delegate 中新增相應的出口並在ib中進行連線。
編寫按鈕的touch up inside**,並連線到uibutton:
-(ibaction
)gourl
別忘了在適當的地方匯入asihttprequest:#import
分別儲存ib和xcode中所做的更改,⌘+b編譯。
三、簡單的非同步請求示例
將上述**修改為:
-(ibaction
)gourl
並實現一系列委託方法:
// 請求結束,獲取
response 資料
// 請求失敗,獲取
從os x 10.6及ios 4.0起,支援塊語法,你也可以使用塊語法呼叫asihttprequest:
-(ibaction
)gourl
web同步非同步請求
普通的b s模式就是同步,而ajax技術就是非同步,當然xmlhttpreques有同步的選項。同步 提交請求 等待伺服器處理 處理完畢返回。這個期間客戶端瀏覽器不能幹任何事。非同步 請求通過事件觸發 伺服器處理 這是瀏覽器仍然可以作其他事情 處理完畢。舉個生動的例子吧 同步就是你叫我去吃飯,我聽到...
Ajax非同步 同步請求
ajax請求最重要的問題是 執行的順序。最長遇到的問題是,我們定義乙個變數接收ajax非同步請求的返回結果,後續 使用,然而後續 在使用時該變數為初始值,始終得不到想要的結果!同步 var email test ptmind.com console.log 1 jquery.ajax console...
http 同步非同步請求
在使用者互動模式下,當你改變表單中某個元件的值時,譬如你填寫名字 修改性別 選擇愛好的時候,瀏覽器和服 務器至今沒有發生任何互動,只有當你點選submit的時候,瀏覽器才會把你的引數,也就是form表單中各元件的值,打包成乙個http請求中發給伺服器。而且,一旦傳送出去,整個頁面就會全部重新整理,重...