你的位置:首页 > 操作系统

[操作系统]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