-
小文件下載步驟
- 發(fā)送網(wǎng)絡(luò)請求
- 實現(xiàn)小文件下載方法
-
小文件下載方法(僅提供每類最常用方法介紹):
- 直接通過NSData下載網(wǎng)絡(luò)資源
- 通過NSURLSessionDataTask下載
3. 通過NSURLConnection,發(fā)送異步-主隊列請求,下載完畢后實現(xiàn)UI刷新(過期不用,了解需要時備查)
- 第一種方式(NSData)
//使用NSDta直接加載網(wǎng)絡(luò)上的url資源(不考慮線程)
##核心代碼
//1. 根據(jù)URL加載對應(yīng)的資源
NSData *data = [NSData dataWithContentsOfURL:url];
//2. 轉(zhuǎn)換并顯示數(shù)據(jù)
UIImage *image = [UIImage imageWithData:data];
self.imageView.image = image;
- 第二種方式(NSURLSessionDataTask-block)
//1.設(shè)置請求路徑
NSURL *url = [NSURL URLWithString:@"http://120.25.226.186:32812/login?username=ss&pwd=ss&type=JSON"];
//2.根據(jù)路徑設(shè)置請求對象-get請求
NSURLRequest *request = [NSURLRequest requestWithURL:url];
//3..創(chuàng)建NSURLSession對象(可以獲取單例對象)
NSURLSession *session = [NSURLSession sharedSession];
//4..根據(jù)NSURLSession對象創(chuàng)建一個Task
NSURLSessionDataTask *dataTask = [session dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
//6.回到主線程刷新UI
//5..執(zhí)行Task
//注意:剛創(chuàng)建出來的task默認是掛起狀態(tài)的,需要調(diào)用該方法來啟動任務(wù)(執(zhí)行任務(wù))
[dataTask resume];
3 第三種方式(NSURLConnection-sendAsync)
//使用NSURLConnection發(fā)送異步請求下載文件資源
##核心代碼
//使用NSURLConnection發(fā)送一個異步請求
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
//4.拿到并處理數(shù)據(jù)
UIImage *image = [UIImage imageWithData:data];
self.imageView.image = image;
}];