get 和post 的主要區(qū)別體現(xiàn)在數(shù)據(jù)傳遞上,
get:在請求的URL后面以?的形式跟上發(fā)給服務(wù)器的參數(shù)驻龟,多個參數(shù)之間用&隔開。由于服務(wù)器和瀏覽器對URL的長度有限制缸匪,因此在URL后面附帶的參數(shù)是有限制的翁狐,通常不能超過1kb.
post:發(fā)送服務(wù)器的參數(shù)全部放在請求體中,理論上凌蔬,post傳遞的參數(shù)是沒有限制的露懒。
post和get 的選擇。
1.如果要傳遞大量數(shù)據(jù)砂心,比如文件上傳懈词,用post
2.get 的安全性比post的差,如果包含機密敏感信息计贰,用post
3.如果僅僅是索取數(shù)據(jù)钦睡,建議使用get
4.如果是增加刪除修改數(shù)據(jù),建議用post
get請求是沒有請求體的躁倒。
一個完整的http請求包含響應(yīng)頭和響應(yīng)體
響應(yīng)頭:包含了對服務(wù)器的描述荞怒,對返回數(shù)據(jù)的描述。
server :服務(wù)器的類型
Content-Type:返回數(shù)據(jù)的類型
Content-Length:返回數(shù)據(jù)的長度
Date:響應(yīng)的時間
響應(yīng)體:服務(wù)器返回給客戶端的具體數(shù)據(jù)秧秉。比如文件的數(shù)據(jù)褐桌。
常見的響應(yīng)狀態(tài)碼:
200:請求成功
400:客戶端請求的語法錯誤,服務(wù)器無法解析
404:服務(wù)器無法根據(jù)客戶端的請求找到資源
500:服務(wù)器內(nèi)部錯誤象迎,無法完成請求荧嵌。
iOS中發(fā)送http請求的方案
1.蘋果原聲的
a.NSURLConnection:用法簡單,最古老經(jīng)典的砾淌。
b.NSURLSession:ios7新出啦撮,蘋果推薦
c.CFNetwork: NSURL*的底層,純c語言
2.第三方框架
a.ASIHttpRequest:已停止更新汪厨。
b.AFNetworking:簡單易用赃春。
c.MKNetworkKit:簡單易用,使用和維護者少
a.NSURLConnection的使用
常用類:
1. NSURL :請求地址
2.NSURLRequest:一個NSURLRequest對象就代表一個請求劫乱,它包含的信息有
a.一個NSURL對象
b.請求方法织中,請求頭,請求體
c.q請求超時....
3.NSMunableURLRequest:NSURLRequest的子類
4.NSURLConnection
負(fù)責(zé)發(fā)送請求衷戈,建立客戶端和服務(wù)器的連接
發(fā)送數(shù)據(jù)給服務(wù)器狭吼,并收集來自服務(wù)器的響應(yīng)數(shù)據(jù)。
5.NSURLConnection的使用步驟
a.創(chuàng)建一個NSURL對象殖妇,設(shè)置請求路徑
b.根據(jù)傳入的NSURL創(chuàng)建一個NSURLRequest請求對象刁笙,設(shè)置請求頭和請求頭。
c.使用NSURLConnection發(fā)送請求
另外,需要注意的是采盒,URL不能有中文旧乞,需要做轉(zhuǎn)碼處理。n