zoukankan      html  css  js  c++  java
  • IOS 网络浅析-(九 NSURLSession代理简介)

    从最开始什么都不懂的小白,到到现在略知一二的小孩。我觉得不仅仅是我,大家应该都会注意到代理几乎贯穿着IOS,那么问题来了,我接下来要说什么呢,那就是。标题的内容啦。上篇网络系列的文章我介绍了NSURLSession,趁热打铁,这篇就介绍一下NSURLSession代理的实现。

    NSURLSession这块其实并不难,但是有人会说有点乱,大家不要担心,不容易实现的api总会有大牛实现三方的,稍后我会为大家献上“微不足道”的三方。

    *关于NSURLSession我想再写一篇到两篇,虽然实际开发中有可能用不到,但是原生的我们还是知道比较好,过于依赖三方,大神也会成为小白*

    言归正转,代码中现本事:

    //
    //  ViewController.m
    //  CX-NSURLSession代理简介
    //
    //  Created by ma c on 16/3/21.
    //  Copyright © 2016年 xubaoaichiyu. All rights reserved.
    //
    
    #import "ViewController.h"
    
    @interface ViewController ()<NSURLSessionDataDelegate>
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
    }
    //这是为了测试而建立的点击屏幕事件。
    -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
        
        //代理 测试
        
        NSURL * url = [NSURL URLWithString:@"http://localhost/login.php?username=haha&password=123"];
    
        //创建自定义Session
        
        NSURLSession * session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:[[NSOperationQueue alloc]init]];
        
        NSURLSessionTask * task = [session dataTaskWithURL:url];
        //开启任务
        [task resume];
        
    }
    #pragma mark - deleDate
    //接受到服务器响应
    -(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDisposition))completionHandler
    {
        //__FUNCTION__ c语言字符串用s
        NSLog(@"%s",__FUNCTION__);
        
        
        //允许服务器回传数据
        completionHandler(NSURLSessionResponseAllow);
        
    }
    //接受服务器回传的数据可能执行多次
    -(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data{
        
        NSLog(@"%@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]);
        
    }
    //请求成功或者失败
    -(void)URLSession:(NSURLSession *)session didBecomeInvalidWithError:(NSError *)error{
        NSLog(@"%@",error);
    }
    @end
  • 相关阅读:
    mysql联合主键,也就是两个数据字段一起做主键的情况
    PHP细节,empty,is_null,isset,if()
    PHP细节,PHP手册中常见的一句话:该函数是二进制安全的
    git和github的学习
    用WPS查看两篇word文档异同之处
    js全角字符转为半角字符
    坑(十七)—— Linux无法挂载NTFS格式的U盘
    subprocess模块
    吴裕雄--天生自然--Go 语言学习笔记--Go 语言数组
    吴裕雄--天生自然--Go 语言学习笔记--Go 语言变量作用域
  • 原文地址:https://www.cnblogs.com/xubaoaichiyu/p/5303413.html
Copyright © 2011-2022 走看看