網路請求 NSURLConnection

2021-07-11 06:37:39 字數 3147 閱讀 6498

http和https

http協議, hyper transfer protocol (超文字傳輸協議) 是用於全球資訊網(www)伺服器傳送超文字到本地瀏覽器的傳輸協議,http是乙個應用層協議,由請求和響應構成,是乙個標準的客戶端伺服器模型.

工作原理: http協議採用請求/響應模型. 客戶端向伺服器傳送乙個請求報文,伺服器以乙個狀態作為響應.

https: 安全超文字傳輸協議 它是乙個安全通訊通道,它基於http開發,用於在客戶計算機和伺服器之間交換資訊.它使用安全套接字層(ssl)進行資訊交換,簡單來說它是http的安全版. https協議使用ssl在傳送方和接受方通過交換共知的秘鈅來實現.因此,傳送的資料不容易被網路黑客擷取和解密.

ssl是netscape公司所提出的安全保密協議,在瀏覽器和web伺服器之間構造安全通道來進行資料傳輸,ssl執行tcp/ip 層值上,應用層之下,為應用程式提供加密資料通道.

https協議需要到ca申請證書,一般免費證書很少,需要交費

http是超文字傳輸協議,資訊是明文傳輸,https則是具有安全性的加密傳輸協議

http和https是用的是完全不同的鏈結方式,用的埠也不一樣,前者是後者是443

http的鏈結很簡單,是無狀態的

https是協議是由ssl + http 協議構建的可進行加密傳輸,身份認證的網路協議 要比http安全

請求方式: get 和 post ;

連線方式: 

同步連線:程式容易出現卡死現象

非同步連線有兩種實現方式: 

設定**,接收資料

實現block

下新增nsallowsarbitraryloads

型別boolean ,

值設為 yes

同步get : 

建立乙個位址字串,注意: 不要有空格

建立乙個統一資源定位符(url)

建立乙個nsurlrequest,並配置快取策略和超時時間

通過乙個nsdata物件獲取網路請求的資料

同步post:

建立乙個位址字串,注意: 不要有空格

建立乙個統一資源定位符

使用nsmutableurlrequest. 因為之後要對request做更改

建立乙個上傳資料的字串,並且轉成nsdata物件

設定請求方式 (sethttpmethod)

設定上傳的data(sethttpbody)

通過乙個nsdata物件獲取網路請求的資料

post和get的區別: 

post設定請求方式

get設定body

同步get和post的缺點: 會造成程式的卡頓,所以在開發中不推薦使用

//get

同步

- (ibaction

)gett:(

id)sender

//post同

- (ibaction

)postt:(

id)sender

非同步 #import

"viewcontroller.h"

@inte***ce

viewcontroller

()<

nsurlconnectiondatadelegate

>

//遵循**

@property

(nonatomic

,strong

)nsmutabledata

*resultdata;

@end

//get

非同步- (

ibaction

)gety:(

id)sender

}];#pragma mark -----**

//**的非同步網路請求

(get)

//引數1: nsurlrequest

//引數2:

** [

nsurlconnection

connectionwithrequest

:request

delegate

:self];}

//post

非同步- (ibaction

)posty:(

id)sender ];

#pragma mark ----

**

[nsurlconnection

connectionwithrequest

:request

delegate

:self];}

#pragma mark  -----nsurlconnectiondatadelegate協議方法

//開始響應

- (void

)connection:(

nsurlconnection

*)connection didreceiveresponse:(

nsurlresponse

*)response

//接收到資料

//這個方法會重複的執行

,所以可能拿到一段一段的資料

.這就是需要我們把這些資料拼接起來

- (void

)connection:(

nsurlconnection

*)connection didreceivedata:(

nsdata

*)data

//結束響應

- (void

)connectiondidfinishloading:(

nsurlconnection

*)connection

@end

policy 

n. 政策,方針;保險單

interval 

n. 間隔;間距;

synchronous 

adj. 同步的;同時的

fragments 

n. 碎片(fragment的複數);片斷;[計] 分段

method 

n. 方法;條理

asynchronous 

adj. [電] 非同步的;不同時的

operation 

n. 操作;經營;[外科] 手術;[數][計] 運算

queue 

n. 佇列;長隊;辮子

swift 同步 網路請求 swift網路請求

swift同樣可以實現oc中afnetworking mjextension的效果,實現方法是alamofire swiftyjson handyjson alamofire 網路請求 swiftyjson 資料解析 handyjson 對映為model 一 獲取sessionmanager子類的單...

iOS NSURLSession 網路請求

在ios9以前網路請求用的是 nsurlconnectio n connectionwithrequest requrest d elegate self 在ios9中官方文件 connectionwithrequest方法中後面給出了下面這樣乙個提示 感興趣的可以去 nsurlsession.h ...

Swift網路請求

這裡以json資料格式為例介紹 常見資料格式json xml等 下面例子使用nsurlconnection實現了乙個簡單的非同步get操作 func requesturl urlstring string else 這個庫通過封裝nsurlconnection和nsoperationqueue實現了...