zoukankan      html  css  js  c++  java
  • 网络邂逅&网络异步请求

    什么是卡,网络慢,且你只能等着它加载完不能做别的事

    这里便引申出网络异步请求的概念

    #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
  • 相关阅读:
    sql 连表
    Laravel 数据验证
    zend studio 破解、汉化和字体颜色及快捷键相关设置
    关于storm的一些知识点
    storm架构原理及集群部署
    storm使用过程中出现的错误:Caused by: java.net.UnknownHostException: storm: 未知的名称或服务
    ElasticSearch基础知识
    ElasticSearch java客户端更新时出现的错误:NoNodeAvailableException[None of the configured nodes are available
    sublime text3 注册码 (Version 3.0)
    使用HTMLTestRunner生产报告
  • 原文地址:https://www.cnblogs.com/iOSlearner/p/5335921.html
Copyright © 2011-2022 走看看