美文网首页
iOS网络请求http之NSURLConnection简单异步请

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

作者: 小沫360 | 来源:发表于2016-02-16 23:59 被阅读258次

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;

相关文章

网友评论

      本文标题:iOS网络请求http之NSURLConnection简单异步请

      本文链接:https://www.haomeiwen.com/subject/sgtmkttx.html