• 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
  • 相关阅读:
    POJ 3660 Cow Contest (floyd求联通关系)
    POJ 3660 Cow Contest (最短路dijkstra)
    POJ 1860 Currency Exchange (bellman-ford判负环)
    POJ 3268 Silver Cow Party (最短路dijkstra)
    POJ 1679 The Unique MST (最小生成树)
    POJ 3026 Borg Maze (最小生成树)
    HDU 4891 The Great Pan (模拟)
    HDU 4950 Monster (水题)
    URAL 2040 Palindromes and Super Abilities 2 (回文自动机)
    URAL 2037 Richness of binary words (回文子串,找规律)
  • 原文地址:https://www.cnblogs.com/xubaoaichiyu/p/5289114.html
Copyright © 2020-2023  润新知