NSURLSession

原创 2016年06月01日 21:46:20

在WWDC2013中 苹果团队推出了NSURLSession (iOS 7)
网络数据请求

宏定义url

#ifndef URL_h
#define URL_h
#define GET_URL @"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx?date=20131129&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213"
#define POST_URL @"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx"
#define POST_BODY @"date=20131129&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213"
#endif /* URL_h */

1 . get请求

// 1.创建URL
    NSURL *url = [NSURL URLWithString:GET_URL];
   // 2.创建session对象
    NSURLSession *session = [NSURLSession sharedSession];
   // 3.创建task请求任务
    //NSURLSession是基于任务去完成相关事件的
   // NSURLSessionTask 所有的任务均放在这里边
    NSURLSessionTask *task = [session dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
        //4解析相关数据
        if (error == nil) {
            NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
            NSLog(@"%@", dic);
        }

    }];

   // 5.核心步:启动任务【千万不能忘记】
    //原因:NSURLSessionTask实例任务处于挂起状态 如果不启动 不会实现BLOCK里的内容
    [task resume];

2 . POST请求

    //1.创建URL
    NSURL *url = [NSURL URLWithString:POST_URL];
    //2.创建请求
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    //2.5 创建BODY
    NSString *bodyString = POST_BODY;
    NSData *postData = [bodyString dataUsingEncoding:NSUTF8StringEncoding] ;
    [request setHTTPMethod:@"POST"];
    [request setHTTPBody:postData];

    //创建session对象
    NSURLSession *session = [NSURLSession sharedSession];
    //创建TASK
    NSURLSessionTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
        //5解析
        if (error == nil) {
            NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
            NSLog(@"%@", dict);
        }

    }];
    [task resume];

get请求 与 post请求的区别:
1.给服务器传输数据方式不同
get:通过网址字符串
post:通过data
2.传输数据大小不同
get:网址字符串最多255字节
post:使用NSData 容量超过1G
3.安全性
get:所有传输给服务器的数据显示在网址里 类似与密码的明文输入直接可见
post:数据被换成NSData(二进制数)类似于密码的密文输入 无法直接读取

NSURLSession简介与入门

NSURLSession 也不是什么新鲜话题了,但之前一直只是简单的使用却没有总结过其用法及注意事项,现在就整理一下关于NSRULSession的相关知识。基本组成       使用需要配合三个基本的...
  • u013378438
  • u013378438
  • 2016年06月19日 21:58
  • 1030

【Objective-C】Http常用API、同步请求与异步请求 /NSURLSession学习笔记(二)Session Task

参考 (1)http://blog.csdn.net/rongxinhua/article/details/20079607?utm_source=tuicool&utm_medium=referr...
  • lvchaman
  • lvchaman
  • 2015年12月14日 16:36
  • 3097

IOS网络开发NSURLSession详解(一)概述

原创blog,转载请注明出处blog.csdn.net/hello_hwc 我的IOS-SDK详解专栏,欢迎关注 http://blog.csdn.net/column/details/huang...
  • Hello_Hwc
  • Hello_Hwc
  • 2015年03月21日 10:03
  • 13786

网络-NSURLSession应用和原理

网络-NSURLSession1. 简介NSRULConnection使用runloop来达到异步下载的,原理:Runloop保证重要的任务流畅执行; 分配固定时隙,实现单一线程异步; c...
  • CSDNhaoren13
  • CSDNhaoren13
  • 2016年03月05日 16:32
  • 1473

ios NSURLSession 来请求图片和json数据

先上图: 以下的两个demo都用到了我基于NSURLSession来封装的一个网络请求的block(后面附录TFNetWorkManager源码) 一. 利用NSURLSession来增量下载...
  • robinson_911
  • robinson_911
  • 2016年09月16日 12:29
  • 579

NSURLSession的介绍和说明

相关组件 NSURLSessionNSURLSessionConfigurationNSURLSessionDataTaskNSURLSessionUploadTaskNSURLSessionD...
  • bravegogo
  • bravegogo
  • 2016年04月30日 16:55
  • 714

通过nsurlsession向服务器传送json数据

近几天真是被json搞死了 终于知道该怎么用json向服务器传输json了 直接贴代码吧 //多样性的request let request = NSMutableURLR...
  • qq_31214097
  • qq_31214097
  • 2015年12月26日 20:19
  • 1055

利用NSURLSession实现https请求

- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view...
  • PZ0605
  • PZ0605
  • 2016年07月19日 19:32
  • 6342

使用NSURLSession发送get和post请求

在iOS9.0之后,以前使用的NSURLConnection过期,苹果推荐使用NSURLSession来替换NSURLConnection完成网路请求相关操作。 简单说明   NSURLSessio...
  • hurosezhang
  • hurosezhang
  • 2016年08月30日 13:41
  • 1538

用NSUrlSession批量下载文件并保存文件的处理

现在我来介绍之前说过的用NSUrlSession批量下载的方法,用NSUrlSession下载文件,有两种方法,一是直接调用Block方法做下载后的处理,二是利用NSUrlSessionDelegat...
  • ZhongLv_HoneyMoon
  • ZhongLv_HoneyMoon
  • 2017年04月17日 16:26
  • 536
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NSURLSession
举报原因:
原因补充:

(最多只允许输入30个字)