您的位置:首页 > 理论基础 > 计算机网络

IOS 网络浅析-(九 NSURLSession代理简介)

2016-03-21 19:59 369 查看
从最开始什么都不懂的小白,到到现在略知一二的小孩。我觉得不仅仅是我,大家应该都会注意到代理几乎贯穿着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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: