iOS网络请求http之NSURLConnection简单异步请求

NSURLConnection对数据的处理方式不同可以分为2种

1、block回调

block一般针对小数据,一次性获得全部数据并返回。

+ (void)sendAsynchronousRequest:(NSURLRequest*) request

queue:(NSOperationQueue*) queue

completionHandler:(void (^)(NSURLResponse* __nullable response, NSData* __nullable data, NSError* __nullable connectionError)) handler;

这个方法会自动创建一个子线程进行网络请求,queue一般是mainQueue,请求完成之后在主线程刷新UI。

2、代理

代理通常针对文件下载,会多次调用代理方法。

NSURLConnectionDataDelegate协议中的代理方法

//将要发送请求时调用

- (nullable NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(nullable NSURLResponse *)response;

//开始接收到服务器的响应时调用

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response;

//接收到服务器返回的数据时调用(服务器返回的数据比较大时会调用多次,一般做大文件下载)

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;

//服务器返回的数据完全接收完毕后调用

- (void)connectionDidFinishLoading:(NSURLConnection *)connection;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容