美文网首页
iOS 网络开发

iOS 网络开发

作者: 孙健会员 | 来源:发表于2017-07-06 14:08 被阅读37次

    目录

    1.NSURLSession

    2.身份验证和自定义TLS

    3.App Transport Security

    4.NSURLSession 工作流

    5.后台传输及其用法

    6.NSURLSession API

    7.其他一些注意点

    1.NSURLSession

    NSURLSession相关类

    • NSURLSession
    • NSURLSessionConfiguration
    • NSURLSessionDelegate
    • NSURLSessionTask
    • NSURLSessionTaskMetrics
    • NSURLSessionTaskTransactionMetrics
    URLSession.png

    NSURLSession分为

    • 全局共享单例session:NSURLSession sharedSession, 有一定的局限性
    • 自定义session: 自定义配置文件,设置代理,大部分时间我们都用这个
    • 后台session:也是自定义session的一种, 只是它用于专门做后台上传和下载任务

    NSURLSessionConfiguration:

    配置可分为

    • defaultSessionConfiguration: 系统默认
    • ephemeralSessionConfiguration�: 仅内存缓存,不做磁盘缓存的配置
    • backgroundSessionConfiguration: 这里需要指定一个identifier,identifier用来后台重连对象。(做后台上传和下载就是使用这个config)
      另外,我们还可以给configuration对象自定义一些属性,例如每端口的最大并发http请求数目,以及是否允许蜂窝网络,请求缓存策略,请求超时,cookies/证书存储等策略

    NSURLSessionDelegate

    delegate.png

    session管理的一组tasks共享一个代理,不想实现代理方法时,代理传nil即可

    代理协议分为:

    • NSURLSessionDelegate:session: session-level的代理
    • NSURLSessionTaskDelegate:task-level面向all的代理
    • NSURLSessionDataDelegate:task-level 面向data和upload的代理方法
    • NSURLSessionDownloadDelegate:task-level面向download的代理
    • NSURLSessionStreamDelegate:task-level面向stream的代理方法

    DownloadTask:
    1.URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes
    2.URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedWrite
    3.URLSession:downloadTask:didFinishDownloadToURL:把临时文件的URL路径给你

    UploadTask:
    URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend

    StreamTask:
    URLSession:task:needNewBodyStream:

    task completion
    URLSession:task:didcomplete:withError

    NSURLRequest:
    1.RequestMethod:
    2.RequestBody
    NSURLResponse:
    1.statusCode
    2.headerFileds

    相关文章

      网友评论

          本文标题:iOS 网络开发

          本文链接:https://www.haomeiwen.com/subject/mvshhxtx.html