head: 只請求頁面的首部,head和get本質是一樣的,區別在於head不含有呈現資料,而僅僅是http頭資訊,用於檢查物件是否存在,以及得到物件的元資料。
post: 向伺服器提交資料,請求伺服器接受所指定的文件作為對所標識的uri的新的從屬實體。
put: 從客戶端向伺服器傳送的資料取代指定的文件的內容,put和post極為相似,都是向伺服器傳送資料,但它們之間有乙個重要區別,put通常指定了資源的存放位置,而post則沒有,post的資料存放位置由伺服器自己決定。
delete: 請求伺服器刪除指定的頁面或某乙個資源。
options: 允許客戶端檢視伺服器的效能。
trace: 請求伺服器在響應中的實體主體部分返回所得到的內容。
patch: 實體中包含乙個表,表中說明與該uri所表示的原內容的區別,用於部分文件更改。
extension-mothed:在不改動協議的前提下,可增加另外的方法
根據http協議的設計初衷,不同的方法對資源有不同的操作方式
put :增
delete :刪
post:改
get:查
get和post的區別使用:
(1)如果要傳遞大量資料,比如檔案上傳,只能用post請求
(2)get的安全性比post要差些,如果包含機密\敏感資訊,建議用post
(3)如果僅僅是索取資料(資料查詢),建議使用get
(4)如果是增加、修改、刪除資料,建議使用post
get 和 post兩種網路請求方式的同步和非同步連線
get 同步
//1.建立**字串
nsstring *urlstr = @"";
編碼 對於**中有中文的 需要更改編碼格式
nsstring *newstring = [urlstr
stringbyaddingpercentescapesusingencoding:nsutf8stringencoding];
//3.建立nsurl物件
nsurl *url = [nsurl urlwithstring:newstring];
//4.建立請求物件 nsurlrequest
nsurlrequest *request = [nsurlrequest requestwithurl:url];
//5.同步請求
nsurlresponse *response = nil;//伺服器響應物件 儲存伺服器響應資訊 返回資料的長度 資料的型別等
nserror *error = nil;//儲存連線錯誤資訊 如連線失敗 網路中斷等
nsdata *data = [nsurlconnection sendsynchronousrequest:request returningresponse:&response error:&error];//data就是通過**從伺服器請求到的資料
//解析資料 供介面上顯示
[self parsedatawithdata:data];
get 非同步
//1.建立**字串
nsstring *urlstr = @"";
編碼 (**中存在中文)
nsstring *newstr = [urlstr stringbyaddingpercentescapesusingencoding:nsutf8stringencoding];
//3.建立nsurl物件
nsurl *url = [nsurl urlwithstring:newstr];
//4.建立**請求物件
nsurlrequest *request = [nsurlrequest requestwithurl:url];
//5.******非同步請求第一種方式*******block形式********
[nsurlconnection sendasynchronousrequest:request queue:[nsoperationqueue mainqueue] completionhandler:^(nsurlresponse *response, nsdata *data, nserror *connectionerror) ];
//********非同步請求第二種方式******delegate******
[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
//連線失敗時
- (void)connection:(nsurlconnection *)connection didfailwitherror:(nserror *)error
post同步
//1.建立**字串
nsstring *str = [nsstring stringwithformat:kurl];
//2.建立nsurl物件
nsurl *url = [nsurl urlwithstring:str];
//3.建立請求物件
nsmutableurlrequest *requset = [nsmutableurlrequest requestwithurl:url];
//4.建立引數字串
//5.設定請求體 將引數字串轉化為nsdata物件
//6.設定請求方式
//7.同步連線
nsdata *data = [nsurlconnection sendsynchronousrequest:requset returningresponse:nil error:nil];
//8.解析
[self parsedata:data];
post非同步
//1.建立**字串
nsstring *str = [nsstring stringwithformat:kurl];
//2.建立url物件
nsurl *url = [nsurl urlwithstring:str];
//3.建立請求物件
nsmutableurlrequest *request = [nsmutableurlrequest requestwithurl:url];
//4.建立引數字串
//5.設定請求體 將引數字串轉化為nsdata物件
//6.設定請求方式
//7.非同步連線
******非同步請求第一種方式*******block形式********
[nsurlconnection sendasynchronousrequest:request queue:[nsoperationqueue mainqueue] completionhandler:^(nsurlresponse *response, nsdata *data, nserror *connectionerror) ];
//********非同步請求第二種方式******delegate******
[nsurlconnection connectionwithrequest:request delegate:self];
}//連線成功
- (void)connection:(nsurlconnection *)connection didreceiveresponse:(nsurlresponse *)response
//接收資料
- (void)connection:(nsurlconnection *)connection didreceivedata:(nsdata *)data
//接收資料完畢
- (void)connectiondidfinishloading:(nsurlconnection *)connection
//- (void)connection:(nsurlconnection *)connection didfailwitherror:(nserror *)error
//解析資料
- (void)parsedata:(nsdata *)data
常見請求方式區別
常用的請求方法裡面get請求和post請求我們都非常熟悉了,今天來談談post,put以及patch,在了解這些之前我們先理解乙個概念 冪等性 冪等性 http協議本身是一種面向資源的應用層協議,但對http協議的使用實際上存在著兩種不同的方式 一種是restful的,它把http當成應用層協議,比...
HTTP的幾種請求方式
基於http的請求方式一共有八種。get請求 這種方法是將資訊儲存在url中,既不安全,還無法傳遞太大的資料。官方說明 向特定的路徑資源發出請求。注意 get方法不應當被哦那個與產生 的操作中。一般的網路爬蟲都會從get入手。post 向指定的路徑提交資料進行處理請求,一般用於表單的提交資料。注意 ...
非同步請求的幾種方式
1.最原始的js new xmlhttprequest 由於瀏覽器相容的原因,複雜,多使用基於jquery的非同步請求方法 內部封裝 2.基於jquery的ajax方法 1 load url,data callback 例項如下 test load test.php function 2 getjs...