美文网首页
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