iOS開發 網路 使用get請求傳送和接受資料

2021-07-03 05:59:30 字數 2558 閱讀 3959

傳送網路請求要使用非同步的方式,不能使用同步的方式

並且非同步的get請求有兩種方式

使用 sendasynchronousrequest 方法實現

//設定請求路徑

nsstring *urlstr = [nsstring stringwithformat:@"", username, password];

//按照utf8編碼 轉成沒有中文的字串

urlstr = [urlstr stringbyaddingpercentescapesusingencoding:nsutf8stringencoding];

//url不能包含中文

nsurl *url = [nsurl urlwithstring:urlstr];

//建立請求物件,預設就是get請求

nsmutableurlrequest *request = [nsmutableurlrequest requestwithurl:url];

//建立乙個佇列,因為介面重新整理的操作只能在主線程,所以這個佇列一般就是主線程佇列

nsoperationqueue *queue = [nsoperationqueue mainqueue];

//開始傳送非同步請求,其中data為伺服器端返回的所有資料,**塊為請求結束所執行的事

[nsurlconnection sendasynchronousrequest:request queue:queue completionhandler:^(nsurlresponse *response, nsdata *data, nserror *connectionerror) else

}}];

第二種方法是使用**方法,這個也是非同步請求,當請求開始其他執行緒就會執行**方法

開始乙個網路請求

//也是乙個非同步的

nsurlconnection *conn = [nsurlconnection connectionwithrequest:request delegate:self];

//請求開始

[conn start];

四個常用的**方法

//收到伺服器端的回應()請求成功 第一執行

-(void)connection:(nsurlconnection *)connection didreceiveresponse:(nsurlresponse *)response {}

//伺服器端返回資料就會呼叫這個方法,可能會呼叫多次,因為每次只返回一部分資料 第二執行

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

//接受玩資料會呼叫 最後執行

-(void)connectiondidfinishloading:(nsurlconnection *)connection {}

完整**

//設定請求路徑

nsstring *urlstr = [nsstring stringwithformat:@"", username, password];

//按照utf8編碼 轉成沒有中文的字串

urlstr = [urlstr stringbyaddingpercentescapesusingencoding:nsutf8stringencoding];

//url不能包含中文

nsurl *url = [nsurl urlwithstring:urlstr];

//建立請求物件,預設就是get請求

nsmutableurlrequest *request = [nsmutableurlrequest requestwithurl:url];

request.timeoutinterval = 5;//設定請求超時時間

//直接就發出乙個非同步請求

[nsurlconnection connectionwithrequest:request delegate:self];

}#pragma mark -實現**方法

//請求錯誤或者失敗的時候呼叫(斷網)請求失敗會執行這個

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

//收到伺服器端的回應()請求成功 第一執行

-(void)connection:(nsurlconnection *)connection didreceiveresponse:(nsurlresponse *)response

//伺服器端返回資料就會呼叫這個方法,可能會呼叫多次,因為每次只返回一部分資料 第二執行

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

//接受玩資料會呼叫 最後執行

-(void)connectiondidfinishloading:(nsurlconnection *)connection else

}

iOS開發網路篇 GET請求和POST請求

一 get請求和post請求簡單說明 建立get請求 1 1.設定請求路徑 2 nsstring urlstr nsstring stringwithformat self.username.text,self.pwd.text 3 nsurl url nsurl urlwithstring url...

iOS開發網路篇 GET請求和POST請求

一 get請求和post請求簡單說明 建立get請求 1 1.設定請求路徑 2 nsstring urlstr nsstring stringwithformat self.username.text,self.pwd.text 3 nsurl url nsurl urlwithstring url...

ios開發網路篇 Get請求和Post請求

一.get請求和post請求簡單說明 建立get請求 1.設定請求路徑 nsstring urlstr nsstring stringwithformat self username text,self pwd text nsurl url nsurl urlwithstring urlstr 2....