同步非同步請求

2021-06-19 18:22:17 字數 1863 閱讀 6486

它提供如下功能:

提交資料到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請求中發給伺服器。而且,一旦傳送出去,整個頁面就會全部重新整理,重...