IOS 網路淺析 (二 網路非同步請求),ios淺析
學習網路,無論是C/S還是B/S首要的當然是向伺服器發送請求,並得到響應,麼有請求沒有響應,那就不叫做網路了。
這邊文章向大家介紹境界一下網路非同步請求。
*大家不要覺得我寫的知識點太零散,我只是想給大家一個良好的,乾淨的學習環境,一次行講解太多知識容易混亂。*
閑話少說,我會在代碼中詳細講解。
上新鮮的代碼了。
//// ViewController.m// CX-網路非同步請求//// Created by ma c on 16/3/17.// Copyright © 2016年 xubaoaichiyu. All rights reserved.//#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; //由於網路太慢,在這裡就用本地的伺服器了。 NSString * urlString = [NSString stringWithFormat:@"http://localhost/tupian.jpg"]; //建立URL統一資源識別項 NSURL * url = [NSURL URLWithString:urlString]; //建立網路請求 /* cachePolicy 緩衝策略 NSURLRequestUseProtocolCachePolicy = 0, //自動緩衝策略 NSURLRequestReloadIgnoringLocalCacheData = 1, //每次都請求網路,無論本地是否存在緩衝 NSURLRequestReturnCacheDataElseLoad = 2,//如果有緩衝返回緩衝,沒有就載入網路 NSURLRequestReturnCacheDataDontLoad = 3,//如果有緩衝返回緩衝,沒有也不載入網路 timeoutInterval 請求逾時 預設逾時時間是60 一般設定 10 - 20s */ // 這是最基本的方法,記住就好,重點在下面哦。 // NSURLRequest * request = [NSURLRequest requestWithURL:url]; NSURLRequest * request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10]; //建立非同步串連*需要ios8及以下* //sendAsynchronousRequest 建立非同步網路連接 //queue 可以傳主隊列,或全域隊列 //[NSOperationQueue mainQueue] 調到主隊列直接更新 //[[NSOperationQueue alloc] init] 不需要調回主線程更新UI [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) { //reponse 為響應資訊 //data 為返回資料 //connectionError 為錯誤資訊 //在這裡列印一下data NSLog(@"%@",data); //二進位資訊,由於太多我截取了一部分 /* 2016-03-17 20:12:24.785 CX-網路非同步請求[2982:155113] <ffd8ffe0 00104a46 49460001 01000048 00480000 ffe10058 45786966 00004d4d 002a0000 00080002 01120003 00000001 00010000 87690004 00000001 00000026 00000000 0003a001 00030000 00010001 0000a002 00040000 00010000 02eea003 00040000 00010000 02ee0000 0000ffed 00385068 6f746f73 */ }];}@end