網路請求 Get Post 方法(整理)

2021-07-01 20:48:39 字數 4031 閱讀 6900

•有兩種方法把資料提交給伺服器:get和post

• get

– get

的語義是獲取指定

url上的資源

–將資料按照variable=value的形式,新增到action所指向的url後面,並且兩者使用「?」連線,各個變數之間使用「&」連線

–不安全,因為在傳輸過程中,資料被放在請求的url中

–傳輸的資料量小,這主要是因為受url長度限制 •

post

– post

的語意是對指定資源「追加

/新增」資料

–將資料放在

資料體中,按照變數和值相對應的方式,傳遞到action所指向url

–所有資料對使用者來說不可見

–可以傳輸大量資料,

上傳檔案只能使用

post

ios 網路處理常用類

•nsurl

(位址)

–請求位址 •

nsurlrequest

(請求,

get請求使用)

–儲存需要傳送給web伺服器的全部資料:

•乙個nsurl物件

•快取策略

•等待web伺服器響應的最長時間

•請求頭

•請求體 •

nsmutableurlrequest(可變

請求,post

請求使用)

–nsurlrequest的可修改子類 •

nsurlconnection

(連線)

–負責建立客戶端和web伺服器之間的網路連線、傳送nsurlrequest物件中的資料並收集來自伺服器的響應

nsurlconnectiondatadelegate

的常用**方法//

伺服器開始返回資料

-(void)connection:didreceiveresponse:

// 收到伺服器返回的資料,

本方法會被呼叫多次

- (void)connection:didreceivedata:

// 資料接收完畢

,做資料的最後處理

-(void)connectiondidfinishloading:

// 網路連線錯誤

- (void)connection:didfailwitherror:

// 傳送資料給伺服器,

post

請求使用此方法

- (void)connection:didsendbodydata:totalbyteswritten: totalbyte***pectedtowrite:

post

請求步驟(定義

/啟動connection

部分省略)

get請求操作**

獲得伺服器資料的準備工作

通過nsurlconnectiondatadelegate

**方法接收資料

// 收到伺服器返回資料,本方法會被呼叫多次

- (void)connection:(nsurlconnection*)connection didreceivedata:(nsdata*)data

nslog(@"

收到伺服器返回資料

%@",data);

[_receiveddata

// 資料接收結束

- (void)connectiondidfinishloading:(nsurlconnection*)connection

nsstring*string = [[nsstring

alloc]initwithdata:_

receiveddata

encoding:nsutf8stringencoding];

nslog(@"

接收完畢,返回內容為:

%@",string);

//釋放資料

_receiveddata = nil;

// 網路連線錯誤

- (void)connection:(nsurlconnection*)connection didfailwitherror:(nserror*)error

//取消對

url的編碼即可發生錯誤。

nslog(@"

網路連線錯誤:

%@", error.localizeddescription);

post

請求操作**

// 初始化接收資料

_receiveddata = [nsmutabledata

data];

// 定義

url,字母及數字組成的

url不需要編碼

nsurl *url = [nsurl

urlwithstring:login_url];

// 定義請求

nsmutableurlrequest*request = [nsmutableurlrequest

requestwithurl:url];

// 等待伺服器響應

的最長時間

[request settimeoutinterval:5.0];

// 設定請求方法,大小寫無關

// 生成請求體資料並編碼

nsdata*body = [bodystring datausingencoding:nsutf8stringencoding];

// 設定

請求資料體,

nsmutableurlrequest

會自動在請求頭中加入

// 定義連線

……nsurlconnectiondatadelegate

**方法       

// 傳送資料給伺服器,

post

請求使用此方法

- (void)connection:(nsurlconnection*)connection didsendbodydata:(nsinteger)byteswritten totalbyteswritten:(nsinteger)totalbyteswritten totalbyte***pectedtowrite:(nsinteger)totalbyte***pectedtowrite

nslog(@「

傳送資料給伺服器

byteswritten

:%d,

totalbyteswritten

%dtotalbyte***pectedtowrite

%d」, byteswritten, totalbyteswritten, totalbyte***pectedtowrite);

同步請求和非同步請求

•nsurlconnection提供了兩個靜態方法可以直接同步或非同步呼叫nsurlrequest,而

無需通過

nsurlconnectiondatadelegate

獲取資料

•同步請求:

sendsynchronousrequest:request returningresponse:&responseerror:&error

•非同步請求:

sendasynchronousrequest:request queue:[

nsoperationqueue

mainqueue

]completionhandler:^(nsurlresponse*response, nsdata*data, nserror*error)

有關主操作佇列的內容,在多執行緒課程講解

HTTP請求方法 GET POST

http hyper text transfer protocol 超文字傳輸協議。是一種建立在tcp上的無狀態連線,整個基本的工作流程是客戶端傳送乙個http請求,說明客戶端想要訪問的資源和請求的動作,服務端收到請求之後,服務端開始處理請求,並根據請求做出相應的動作訪問伺服器資源,最後通過傳送ht...

請求方法GET POST的幾點

區別 瀏覽器位址呈現形式不同 表面區別 get post get請求格式 get login?username xyz passwd 123456 http 1.1 post請求格式 post login http 1.1 username xyz passwd 123456 需要傳輸大檔案時,使用...

get post請求方法的區別

get和post是http請求的兩種基本方法。get把引數包含在url中,是從伺服器上獲取資料,post通過request body傳遞引數,是向伺服器傳送資料。get請求引數會被完整保留在瀏覽器歷史記錄裡,而post中的引數不會被保留。get請求會被瀏覽器主動抓取 cache 而post不會,除非...