ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 网络编程 >> IOS开发 >> NSURLSession全面学习笔记

NSURLSession全面学习笔记(1/15)

来源:网络整理     时间:2018-10-25     关键词:

本篇文章主要介绍了" NSURLSession全面学习笔记",主要涉及到方面的内容,对于IOS开发感兴趣的同学可以参考一下: 最近一直在学习AFNetWorking这个框架,我们知道这个框架主要就是封装的的NSURLSession这个类及其相关的类,那么我们要想搞清楚AFNetwork...

最近一直在学习AFNetWorking这个框架,我们知道这个框架主要就是封装的的NSURLSession这个类及其相关的类,那么我们要想搞清楚AFNetworking这个框架,首先就要搞清楚NSURLSession这个类相关的类。
首先学习一下在NSURLSession之前使用的一个类:NSURLConnection这个类。

一.NSURLConnection

NSURLConnection这个类是在NSURLSession之前进行网络请求使用的类。这个类对象通过NSURLRequest对象来加载内容,NSURLConnection的接口非常少,只提供了开始和取消异步网络请求的接口。大部分的网络请求的配置要通过设置NSURLRequest去进行。

1. NSURLConnection的代理

NSURLConnection的代理有三个,NSURLConnectionDelegate,NSURLConnectionDataDelegate,NSURLConnectionDownloadDelegate,NSURLConnection对象会调用这些代理方法来提供网络请求的进度和状态。

NSURLConnectionDelegate

这个协议主要使用来处理认证相关的问题,但是也处理网络请求失败时的回调,所以所有NSURLConnection的delegate必须实现这个协议。
主要的协议方法:


@在将要向请求发送认证挑战时回调这个啊方法
- (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge;
@当网络请求失败时会回调这个方法
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error;

NSURLConnectionDataDelegate除非你是使用Newsstand这个框架,否则你也应该遵守NSURLConnectionDataDelegate这个协议,这个协议在上传文件时会提供进度信息,在下载数据时会周期性的回调下载的数据片等等。
主要的协议方法:

@当收到响应的时候会回调这个方法
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response;
@在获取从服务器端返回的数据时这个方法会被周期性的回调,每次的data都是服务器端新返回的数据,我们把这些数据拼接在一起就可以得到完整的数据。
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;
@在上传请求体的数据时,回调这个方法来显示上传的进度
- (void)connection:(NSURLConnection *)connection didSendBodyData:(NSInteger)bytesWritten totalBytesWritten:(NSInteger)totalBytesWritten totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite;
@网络请求成功完成的时候会回调这个方法
- (void)connectionDidFinishLoading:(NSURLConnection *)connection;
NSURLConnectionDownloadDelegate如果使用了Newsstand这个框架,那么这个协议也应该遵守。

相关图片

相关文章