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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

NSURLSession和NSURLConnection

發布時間:2025/6/17 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NSURLSession和NSURLConnection 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

iOS9.0之后NSURLConnection被注銷,采用NSURLSession,先介紹NSURLSession,然后介紹NSURLConnection

1.NSURLSession:

post請求:

//1.NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]];request.HTTPMethod=@"POST";request.HTTPBody = [@"" dataUsingEncoding:NSUTF8StringEncoding];//2.NSURLSession *session=[NSURLSession sharedSession];NSURLSessionDataTask *dataTask= [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {NSLog(@"NSURLSession加載數據。。。。post。。。。。%@",data);}];//3.[dataTask resume];

創建請求并設置代理delegate:(NSURLSessionDataDelegate)

//1.確定請求路徑NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];//2.創建請求對象//請求對象內部默認已經包含了請求頭和請求方法(GET)NSURLRequest *request = [NSURLRequest requestWithURL:url];//3.獲得會話對象,并設置代理/*第一個參數:會話對象的配置信息defaultSessionConfiguration 表示默認配置第二個參數:誰成為代理,此處為控制器本身即self第三個參數:隊列,該隊列決定代理方法在哪個線程中調用,可以傳主隊列|非主隊列[NSOperationQueue mainQueue] 主隊列: 代理方法在主線程中調用[[NSOperationQueue alloc]init] 非主隊列: 代理方法在子線程中調用 */NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:[NSOperationQueue mainQueue]];//4.根據會話對象創建一個Task(發送請求)NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request];//5.執行任務[dataTask resume];

delegate協議方法:

//1.接收到服務器響應的時候調用該方法 -(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDisposition))completionHandler{//在該方法中可以得到響應頭信息,即responseNSLog(@"didReceiveResponse--%@",[NSThread currentThread]);completionHandler(NSURLSessionResponseAllow);//注意:需要使用completionHandler回調告訴系統應該如何處理服務器返回的數據//默認是取消的/*NSURLSessionResponseCancel = 0, 默認的處理方式,取消NSURLSessionResponseAllow = 1, 接收服務器返回的數據NSURLSessionResponseBecomeDownload = 2,變成一個下載請求NSURLSessionResponseBecomeStream 變成一個流*/ }//2.接收到服務器返回數據的時候會調用該方法,如果數據較大那么該方法可能會調用多次 -(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data{NSLog(@"didReceiveData--%@",[NSThread currentThread]);//拼接服務器返回的數據 } //3.當請求完成(成功|失敗)的時候會調用該方法,如果請求失敗,則error有值-(void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error {NSLog(@"didCompleteWithError--%@",[NSThread currentThread]);if(error == nil){//解析數據,JSON解析請參考 }}

?2.NSURLConnection

普通請求:

/* //1.網址NSURL *url=[NSURL URLWithString:@"http://www.baidu.com"];//2.請求NSURLRequest *request=[NSURLRequest requestWithURL:url];//3.隊列NSOperationQueue *queue=[[NSOperationQueue alloc]init];//4.發送異步請求[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse * response, NSData * data, NSError * connectionError) {NSString *content=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];NSLog(@"加載成功:%@",content);}];*///同步發送,要放到另一個線程里,防止阻塞;dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{NSURLRequest *request=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]];NSURLResponse *response;NSData *data=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];//&指的是指針;NSString *content=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];NSLog(@"NSURLConnection加載數據。。。。。。。:%@",content);});

代理請求:(NSURLConnectionDataDelegate)

NSURLRequest *request=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]];// NSURLResponse *response; [NSURLConnection connectionWithRequest:request delegate:self];

代理協議方法:

// -(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{NSLog(@"接到response"); }
//
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{NSLog(@"接收數據");}
//
-(void)connectionDidFinishLoading:(NSURLConnection *)connection{NSLog(@"接收數據完成");}

?參考網址:http://www.cnblogs.com/wendingding/p/5168772.html

轉載于:https://www.cnblogs.com/sunjianfei/p/5570578.html

總結

以上是生活随笔為你收集整理的NSURLSession和NSURLConnection的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 精品看片| 91亚洲国产成人久久精品麻豆 | 精品乱子伦| 99久久久久成人国产免费 | 91爱视频 | 成人h动漫精品一区 | 被各种性器调教到哭vk | 亚洲永久免费观看 | 91在线播 | 国产电影一区二区三区爱妃记 | 国精产品一区一区三区免费视频 | 精品久久久久久久久久久 | 国产日韩欧美亚洲 | 97在线精品视频 | av在线免费播放网址 | 懂色av一区二区三区在线播放 | 男人的天堂日韩 | 久久国产乱 | 91高清视频在线 | 极品美女开粉嫩精品 | 亚洲色图一区二区三区 | 老地方在线观看免费动漫 | 久久久久久久久久久久久国产 | 伊人婷婷色 | 国产精品免费看久久久无码 | 岳乳丰满一区二区三区 | 成人h视频在线观看 | 国产18页| 一区二区三区在线电影 | 免费人成年激情视频在线观看 | 快射视频网站 | 亚洲欧洲一区二区在线观看 | 俺来也av| 国产经典一区二区三区 | 日本一区视频在线播放 | 流白浆视频| 欧美一区二区久久 | 漂亮少妇高潮午夜精品 | 中文字幕一区二区人妻电影丶 | 亚洲老老头同性老头交j | 99免费在线观看 | 曰女同女同中文字幕 | 欧美一二三区 | 岛国在线视频 | 天天干天天噜 | 久久久久久国产视频 | 婷久久 | 国产乱码一区二区三区在线观看 | 日本黄色免费 | 2018国产大陆天天弄 | 24小时日本在线www免费的 | 国产成年人视频 | 日本免费黄色小视频 | 亚洲精品大全 | 欧美bdsm调教视频 | 无码人妻丰满熟妇啪啪网站 | 一区二区精品视频在线观看 | 丰满人妻中伦妇伦精品app | 老女人乱淫| 尤物在线免费视频 | 香蕉一区二区三区四区 | 白浆在线 | 日本黄色免费观看 | 黄色动漫免费在线观看 | 午夜精品视频一区 | 做爰视频毛片视频 | 欧美激情在线观看视频 | 色先锋av | 国产精品人人妻人人爽人人牛 | 一级黄色a视频 | 欧美乱妇高清无乱码 | 黄网站免费视频 | 中文字幕欧美人妻精品 | 好大好舒服视频 | 小早川怜子一区二区三区 | 天天噜夜夜噜 | 999在线视频 | 久久精品资源 | 男人天堂免费视频 | 99国产精品人妻噜啊噜 | 国产亚洲制服欧洲高清一区 | 欧美一区二区三区久久精品 | 亚洲AV无码精品一区二区三区 | 麻豆av一区二区三区在线观看 | 色偷偷888欧美精品久久久 | 午夜精品久久久久久久99老熟妇 | 久久福利影院 | 精品国产网| 久操国产| 亚洲专区区免费 | 久久538 | 欧美日本高清视频 | 免费一级特黄 | 国产高h视频 | 不卡国产视频 | 国产一区二区三区在线 | 九色影视 | 日韩在线视频在线观看 | 老牛av一区二区 |