iOS-NSURLSession的代理协议方法

热门标签

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系!

/**
 1./接受到服务器的响应,默认会直接取消本次请求,如果不进行设置,是无法实现请求数据的效果的
 
 @param session 会话对象
 @param dataTask 任务对象
 @param response 响应头信息
 @param completionHandler 回调block,这个是我们传回去的block
 */
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDisposition))completionHandler{
    
    /**
     NSURLSessionResponseCancel = 0, 默认的 取消[task cancel]
     //Cancel the load, this is the same as -[task cancel]
     NSURLSessionResponseAllow = 1,  正常的接收数据
     Allow the load to continue
     NSURLSessionResponseBecomeDownload = 2, 把本次响应变成下载任务
     Turn this request into a download
     NSURLSessionResponseBecomeStream        也是下载任务,但是对设备的版本有要求
     API_AVAILABLE(macos(10.11),ios(9.0),watchos(2.0),tvos(9.0)) = 3,
     Turn this task into a stream task
     */
    //系统需要我们传一个block回去,不传是请求不下数据的
    completionHandler(NSURLSessionResponseAllow);
    
    //在这个方法中可以写一下初始化操作
}

/**
 接收到服务器返回的数据 , 会调用多次
 
 @param session 会话对象
 @param dataTask 请求任务
 @param data 本次请求下载的数据
 */
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data{
    
    //这个方法会多次调用,如果数据较大用拼接的方法得到完整的数据
}

/**
 请求正常结束或者失败时调用
 无论成功或失败都会调用
 @param session 会话对象
 @param task 请求任务
 @param error 错误信息
 */
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error{
    
    //请求结束的回调方法
}
标签:

未经允许不得转载:作者:SheaYang, 转载或复制请以 超链接形式 并注明出处 技术Dog|博客
原文地址:《iOS-NSURLSession的代理协议方法》 发布于2019-10-02

分享到:
赞(0)

评论 抢沙发

8 + 4 =


iOS-NSURLSession的代理协议方法

长按图片转发给朋友

Vieu4.0主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录