/**
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{
//请求结束的回调方法
}
iOS-NSURLSession的代理协议方法
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...