日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IOS之同步请求、异步请求、GET请求、POST请求

發(fā)布時間:2025/7/14 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IOS之同步请求、异步请求、GET请求、POST请求 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、同步請求可以從因特網(wǎng)請求數(shù)據(jù),一旦發(fā)送同步請求,程序?qū)⑼V褂脩艚换?#xff0c;直至服務(wù)器返回數(shù)據(jù)完成,才可以進行下一步操作,

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

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

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

?

1、 同步GET請求//第一步,創(chuàng)建URL NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do?type=focus-c"];//第二步,通過URL創(chuàng)建網(wǎng)絡(luò)請求 NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];//NSURLRequest初始化方法第一個參數(shù):請求訪問路徑,第二個參數(shù):緩存協(xié)議,第三個參數(shù):網(wǎng)絡(luò)請求超時時間(秒) 其中緩存協(xié)議是個枚舉類型包含:NSURLRequestUseProtocolCachePolicy(基礎(chǔ)策略)NSURLRequestReloadIgnoringLocalCacheData(忽略本地緩存)NSURLRequestReturnCacheDataElseLoad(首先使用緩存,如果沒有本地緩存,才從原地址下載)NSURLRequestReturnCacheDataDontLoad(使用本地緩存,從不下載,如果本地沒有緩存,則請求失敗,此策略多用于離線操作)NSURLRequestReloadIgnoringLocalAndRemoteCacheData(無視任何緩存策略,無論是本地的還是遠程的,總是從原地址重新下載)NSURLRequestReloadRevalidatingCacheData(如果本地緩存是有效的則不下載,其他任何情況都從原地址重新下載)//第三步,連接服務(wù)器 NSData *received = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];NSString *str = [[NSString alloc]initWithData:received encoding:NSUTF8StringEncoding];NSLog(@"%@",str);2、同步POST請求//第一步,創(chuàng)建URL NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do"];//第二步,創(chuàng)建請求 NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];[request setHTTPMethod:@"POST"];//設(shè)置請求方式為POST,默認為GET NSString *str = @"type=focus-c";//設(shè)置參數(shù) NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];[request setHTTPBody:data];//第三步,連接服務(wù)器 NSData *received = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];NSString *str1 = [[NSString alloc]initWithData:received encoding:NSUTF8StringEncoding];NSLog(@"%@",str1); 3、異步GET請求//第一步,創(chuàng)建url NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do?type=focus-c"];//第二步,創(chuàng)建請求 NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];//第三步,連接服務(wù)器 NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self]; 4、異步POST請求//第一步,創(chuàng)建url NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do"];//第二步,創(chuàng)建請求 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];//第三步,連接服務(wù)器 NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];5、異步請求的代理方法//接收到服務(wù)器回應(yīng)的時候調(diào)用此方法- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{NSHTTPURLResponse *res = (NSHTTPURLResponse *)response;NSLog(@"%@",[res allHeaderFields]);self.receiveData = [NSMutableData data];}//接收到服務(wù)器傳輸數(shù)據(jù)的時候調(diào)用,此方法根據(jù)數(shù)據(jù)大小執(zhí)行若干次-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{[self.receiveData appendData:data];}//數(shù)據(jù)傳完之后調(diào)用此方法-(void)connectionDidFinishLoading:(NSURLConnection *)connection{NSString *receiveStr = [[NSString alloc]initWithData:self.receiveData encoding:NSUTF8StringEncoding];NSLog(@"%@",receiveStr);}//網(wǎng)絡(luò)請求過程中,出現(xiàn)任何錯誤(斷網(wǎng),連接超時等)會進入此方法-(void)connection:(NSURLConnection *)connectiondidFailWithError:(NSError *)error{NSLog(@"%@",[error localizedDescription]);

轉(zhuǎn):http://www.open-open.com/lib/view/open1355055986679.html

?

轉(zhuǎn)載于:https://www.cnblogs.com/ygm900/p/4311737.html

總結(jié)

以上是生活随笔為你收集整理的IOS之同步请求、异步请求、GET请求、POST请求的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。