IOS 网络浅析 (二 网络异步请求)

 学习网络,无论是C/S还是B/S首要的当然是向服务器发送请求,并得到响应,么有请求没有响应,那就不叫做网络了。

这边文章向大家介绍境界一下网路异步请求。

*大家不要觉得我写的知识点太零散,我只是想给大家一个良好的,干净的学习环境,一次行讲解太多知识容易混乱。*

闲话少说,我会在代码中详细讲解。

上新鲜的代码了。

//
//  ViewController.m
//  CX-网路异步请求
//
//  Created by ma c on 16/3/17.
//  Copyright © 2016年 xubaoaichiyu. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    //由于网络太慢,在这里就用本地的服务器了。
    
    NSString * urlString = [NSString stringWithFormat:@"http://localhost/tupian.jpg"];
    
    //创建URL统一资源标识符
    
    NSURL * url = [NSURL URLWithString:urlString];
    
    //创建网络请求
    
    /*
     cachePolicy 缓存策略
     
     NSURLRequestUseProtocolCachePolicy = 0, //自动缓存策略
     
     NSURLRequestReloadIgnoringLocalCacheData = 1, //每次都请求网络,无论本地是否存在缓存
     
     NSURLRequestReturnCacheDataElseLoad = 2,//如果有缓存返回缓存,没有就加载网络
     
     NSURLRequestReturnCacheDataDontLoad = 3,//如果有缓存返回缓存,没有也不加载网络
     
     timeoutInterval 请求超时 默认超时时间是60 一般设置 10 - 20s
     
     */
    
    //    这是最基本的方法,记住就好,重点在下面哦。
    //    NSURLRequest * request = [NSURLRequest requestWithURL:url];
    
    
    NSURLRequest * request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
    
    //建立异步连接*需要ios8及以下*
    
    //sendAsynchronousRequest 建立异步网络连接
    
    //queue  可以传主队列,或全局队列
    
    //[NSOperationQueue mainQueue]   调到主队列直接更新
    
    //[[NSOperationQueue alloc] init]  不需要调回主线程更新UI
    
    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
        
        //reponse 为响应信息
        //data 为返回数据
        //connectionError 为错误信息
        
        //在这里打印一下data
        
        NSLog(@"%@",data);
        //二进制信息,由于太多我截取了一部分
        /*
         2016-03-17 20:12:24.785 CX-网路异步请求[2982:155113] <ffd8ffe0 00104a46 49460001 01000048 00480000 ffe10058 45786966 00004d4d 002a0000 00080002 01120003 00000001 00010000 87690004 00000001 00000026 00000000 0003a001 00030000 00010001 0000a002 00040000 00010000 02eea003 00040000 00010000 02ee0000 0000ffed 00385068 6f746f73
         */
        
    }];
}

@end
原文地址:https://www.cnblogs.com/xubaoaichiyu/p/5289114.html