先給年夜家分離引見下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要求】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!