国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

全面解析iOS中同步請求、異步請求、GET請求、POST請求

2020-07-26 03:15:47
字體:
來源:轉載
供稿:網友

先給大家分別介紹下iOS中同步請求、異步請求、GET請求、POST所代表的意思,然后在逐一通過實例給大家介紹。

1、同步請求可以從因特網請求數據,一旦發送同步請求,程序將停止用戶交互,直至服務器返回數據完成,才可以進行下一步操作,

2、異步請求不會阻塞主線程,而會建立一個新的線程來操作,用戶發出異步請求后,依然可以對UI進行操作,程序可以繼續運行

3、GET請求,將參數直接寫在訪問路徑上。操作簡單,不過容易被外界看到,安全性不高,地址最多255字節;

4、POST請求,將參數放到body里面。POST請求操作相對復雜,需要將參數和地址分開,不過安全性高,參數放在body里面,不易被捕獲。

1、 同步GET請求

//第一步,創建URLNSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do?type=focus-c"];//第二步,通過URL創建網絡請求NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];//NSURLRequest初始化方法第一個參數:請求訪問路徑,第二個參數:緩存協議,第三個參數:網絡請求超時時間(秒)其中緩存協議是個枚舉類型包含:NSURLRequestUseProtocolCachePolicy(基礎策略)NSURLRequestReloadIgnoringLocalCacheData(忽略本地緩存)NSURLRequestReturnCacheDataElseLoad(首先使用緩存,如果沒有本地緩存,才從原地址下載)NSURLRequestReturnCacheDataDontLoad(使用本地緩存,從不下載,如果本地沒有緩存,則請求失敗,此策略多用于離線操作)NSURLRequestReloadIgnoringLocalAndRemoteCacheData(無視任何緩存策略,無論是本地的還是遠程的,總是從原地址重新下載)NSURLRequestReloadRevalidatingCacheData(如果本地緩存是有效的則不下載,其他任何情況都從原地址重新下載)//第三步,連接服務器NSData *received = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];NSString *str = [[NSString alloc]initWithData:received encoding:NSUTF8StringEncoding];NSLog(@"%@",str);

2、同步POST請求

//第一步,創建URLNSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do"];//第二步,創建請求NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];[request setHTTPMethod:@"POST"];//設置請求方式為POST,默認為GETNSString *str = @"type=focus-c";//設置參數NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];[request setHTTPBody:data];//第三步,連接服務器NSData *received = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];NSString *str1 = [[NSString alloc]initWithData:received encoding:NSUTF8StringEncoding];NSLog(@"%@",str1);

3、異步GET請求

//第一步,創建urlNSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do?type=focus-c"];//第二步,創建請求NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];//第三步,連接服務器NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];

4、異步POST請求

//第一步,創建urlNSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do"];//第二步,創建請求NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];[request setHTTPMethod:@"POST"];NSString *str = @"type=focus-c";NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];[request setHTTPBody:data];//第三步,連接服務器NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];

5、異步請求的代理方法

//接收到服務器回應的時候調用此方法- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{NSHTTPURLResponse *res = (NSHTTPURLResponse *)response;NSLog(@"%@",[res allHeaderFields]);self.receiveData = [NSMutableData data];}//接收到服務器傳輸數據的時候調用,此方法根據數據大小執行若干次-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{[self.receiveData appendData:data];}//數據傳完之后調用此方法-(void)connectionDidFinishLoading:(NSURLConnection *)connection{NSString *receiveStr = [[NSString alloc]initWithData:self.receiveData encoding:NSUTF8StringEncoding];NSLog(@"%@",receiveStr);}//網絡請求過程中,出現任何錯誤(斷網,連接超時等)會進入此方法-(void)connection:(NSURLConnection *)connectiondidFailWithError:(NSError *)error{NSLog(@"%@",[error localizedDescription]);

以上所述是小編給大家介紹的iOS中同步請求、異步請求、GET請求、POST請求全面解析,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高青县| 阿拉善右旗| 江津市| 东辽县| 威海市| 郁南县| 亳州市| 南充市| 普兰县| 江源县| 怀远县| 黔西| 内江市| 新田县| 垫江县| 新郑市| 栾城县| 莎车县| 南昌县| 阜南县| 内江市| 太保市| 双辽市| 孟津县| 武冈市| 皮山县| 循化| 和平区| 大兴区| 噶尔县| 濮阳市| 望江县| 张家港市| 章丘市| 天津市| 皋兰县| 军事| 肥西县| 长岛县| 石城县| 彭州市|