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。

iOS网络请求http之NSURLConnection简单异步请求_第1张图片

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;

你可能感兴趣的:(iOS网络请求http之NSURLConnection简单异步请求)