你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> 周全解析iOS中同步要求、異步要求、GET要求、POST要求

周全解析iOS中同步要求、異步要求、GET要求、POST要求

編輯:IOS開發綜合

先給年夜家分離引見下IOS中同步要求、異步要求、GET要求、POST所代表的意思,然後在一一經由過程實例給年夜家引見。

1、同步要求可以從因特網要求數據,一旦發送同步要求,法式將停滯用戶交互,直至辦事器前往數據完成,才可以停止下一步操作,

2、異步要求不會壅塞主線程,而會樹立一個新的線程來操作,用戶收回異步要求後,仍然可以對UI停止操作,法式可以持續運轉

3、GET要求,將參數直接寫在拜訪途徑上。操作簡略,不外輕易被外界看到,平安性不高,地址最多255字節;

4、POST要求,將參數放到body外面。POST要求操作絕對龐雜,須要將參數和地址離開,不外平安性高,參數放在body外面,不容易被捕捉。

1、 同步GET要求

//第一步,創立URL
NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphoneXmlRss/ target=_blank class=infotextkey>Xml.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要求

//第一步,創立URL
NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphoneXmlRss/ target=_blank class=infotextkey>Xml.do"];
//第二步,創立要求
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
[request setHTTPMethod:@"POST"];//設置要求方法為POST,默許為GET
NSString *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要求

//第一步,創立url
NSURL *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要求

//第一步,創立url
NSURL *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 *)connection
didFailWithError:(NSError *)error
{
NSLog(@"%@",[error localizedDescription]);

以上所述是小編給年夜家引見的IOS中同步要求、異步要求、GET要求、POST要求周全解析,願望對年夜家有所贊助,假如年夜家有任何疑問請給我留言,小編會實時答復年夜家的。在此也異常感激年夜家對本站網站的支撐!

【周全解析iOS中同步要求、異步要求、GET要求、POST要求】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved