iOS技术文章

知识小总结六 (原生网络请求)☀️

2017-02-13  本文已影响19人  LeaderBiao

是什么?

网络需求一般有如下几种:

怎么做?

NSURLSession组件

NSURLSession、NSURLRequest/NSMutableURLRequest、NSURLSessionConfiguration、NSURLSessionTask、NSURLCache

下面是各个组件的作用

NSURLSession

三种创建方法

NSURLSessionConfiguration:配置会话的属性

常用配置


NSURLRequest/NSMutableURLRequest

NSMutableURLRequest的常见设置内容

NSURLSessionTask: 可支持的任务
NSURLSessionDataTask,
NSURLSessionUploadTask,
NSURLSessionDownloadTask以及iOS9的NSURLStreamTask。
这四个类封装了现代应用程序的四个基本网络任务:获取数据,比如JSON或XML,以及上传,下载文件和流媒体。

NSURLCache

NSURLCache *cache = [NSURLCache sharedURLCache]; ```

- 设置内存缓存的最大容量(字节为单位,默认为512KB)

-(void)setMemoryCapacity:(NSUInteger)memoryCapacity;```

   - (void)setDiskCapacity:(NSUInteger)diskCapacity;```

- 硬盘缓存的位置:沙盒/Library/Caches
- 取得某个请求的缓存

  - (void)removeCachedResponseForRequest:(NSURLRequest *)request;```

- 清除所有的缓存


相关委托方法

NSURLSessionDataDelegate
URLSession:dataTask:didReceiveData: 一收到数据时就会调用,在一个任务中会调用很多次

URLSession:task:didCompleteWithError:   任务完成时调用

NSURLSessionDownloadDelegate
URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes:   当任务暂停后继续时调用

URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:   通知下载进度

URLSession:downloadTask:didFinishDownloadingToURL:      下载完成后调用

上一篇下一篇

猜你喜欢

热点阅读