iOS開發 GET、POST請求方法:NSURLConnection篇

啊左~發表於2016-05-30

Web Service使用的主要協議是HTTP協議,即超文字傳輸協議

HTTP/1.1協議共定義了8種請求方法(OPTIONS、HEAD、GET、POST、PUT、DELETE、TRACE、CONNECT)作為Web伺服器。

  • GET方法,是向指定的資源傳送請求,請求的引數“顯式”地在URL的後面。有點像明信片,把內容“顯式”寫在外面,因此安全性比較差。一般使用於讀取資料、例如從伺服器讀取靜態圖片、或查詢資料等。
  • POST方法,是向指定資源提交資料,請求伺服器進行處理,資料包含在請求體中。引數和地址分開,放在body裡面。有點像把信內容放在信封中,接觸的人看不到,安全性比較高。一般用於例如提交表單、上傳檔案等(請求的的動態資源,與查詢類似,每個方法呼叫都要傳遞很多引數,因此需要使用 NSMutableURLRequest建立請求。 )

iOS SDK中為HTTP請求提供了同步和非同步請求這兩種不同的API,

  1. 同步請求,可以從因特網請求資料,一旦傳送同步請求,程式將停止使用者互動,直至伺服器返回資料完成,才可以進行下一步操作,意味著執行緒阻塞;
  2. 非同步請求,不會阻塞主執行緒,而會建立一個新的執行緒來操作,使用者發出非同步請求後,依然可以對UI進行操作,程式可以繼續執行;

它們的主要區別在於連線方式的不同。

下面通過請求一個登陸介面介紹有關於網路請求中的不同情況。
一、GET方法

1.同步get方法:

 

2.非同步get方法:

非同步請求與同步請求的不同在於使用NSURLConnectionDataDelegate委託協議,指定代理.

建立網路請求:

非同步的代理行為:

 

 二、POST方法

1.同步post方法:

2.post方法的非同步與同步的區別在於使用NSURLConnectionDataDelegate委託協議,指定代理.

這一點與get方法一致,所以就不進行長篇幅的演示了。

 

以上就是關於部分網路同步非同步請求,get、post請求方法的演示,由於UI控制元件還有其他的處理沒有附上,具體的讀者可以進行相應細節的調整,進行完整的網路請求專案開發。

由於iOS 9開始,引入了新的網路介面NSURLSession,而在iOS9中NSURLConnection被宣佈棄用,因此關於NSURLSession傳送GET和POST請求的資料部分,有興趣的可以參考:《iOS開發 GET、POST請求方法(NSURLSession篇)

相關文章