iOS网络-NSURLSessionTask简单介绍

NSURLSessionTask也可以用来发送网络请求, 相对NSURLConnection, 推荐使用NSURLSessionTask.

a.NSURLSessionTask是一个抽象类,本身不能使用,只能使用它的子类

b.NSURLSessionDataTask\NSURLSessionUploadTask\NSURLSessionDownloadTask

基本使用(GET/POST)跟NSURLConnection类似:

-(void)get1
{
    //1.创建请求路径
    NSURL *url = [NSURL URLWithString:@"http://120.25.226.186:32812/login?username=123&pwd=123&type=JSON"];

    //2.创建请求对象
    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    //3.创建会话对象
    NSURLSession *session = [NSURLSession sharedSession];

    //4.创建task
    /*
     第一个参数:请求对象
     第二个参数:completionHandlerblock
     data:响应体
     response:响应头
     error:错误信息
     */
    NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

        //6.解析数据
        NSLog(@"%@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]);

    }];

    //5.启动执行
    [dataTask resume];
}

-(void)get2
{
    //1.创建请求路径
    NSURL *url = [NSURL URLWithString:@"http://120.25.226.186:32812/login?username=123&pwd=123&type=JSON"];

    //3.创建会话对象
    NSURLSession *session = [NSURLSession sharedSession];

    //4.创建task
    /*
     第一个参数:请求对象
     第二个参数:completionHandlerblock
     data:响应体
     response:响应头
     error:错误信息
     */
    NSURLSessionDataTask *dataTask =  [session dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

        //6.解析数据
        NSLog(@"%@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]);
    }];

    //5.启动执行
    [dataTask resume];
}

-(void)post
{
    //1.创建请求路径
    NSURL *url = [NSURL URLWithString:@"http://120.25.226.186:32812/login"];

    //2.创建请求对象
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

    request.HTTPMethod = @"POST";

    request.HTTPBody = [@"username=520it&pwd=123&type=JSON" dataUsingEncoding:NSUTF8StringEncoding];

    //3.创建会话对象
    NSURLSession *session = [NSURLSession sharedSession];

    //4.创建task
    /*
     第一个参数:请求对象
     第二个参数:completionHandlerblock
     data:响应体
     response:响应头
     error:错误信息
     */
    NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

        //6.解析数据
        NSLog(@"%@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]);

    }];

    //5.启动执行
    [dataTask resume];
}
时间: 2024-10-21 14:41:21

iOS网络-NSURLSessionTask简单介绍的相关文章

iOS网络-NSURLConnection简单介绍

GET请求 同步请求(GET-SendSync)(1)步骤    1 设置请求路径    2 创建请求对象(默认是GET请求,且已经默认包含了请求头)    3 使用NSURLSession sendsync方法发送网络请求    4 接收到服务器的响应后,解析响应体 (2)相关代码 //1.确定请求路径 //协议头+主机地址+接口名称+?+参数1&参数2&参数3 NSURL *url = [NSURL URLWithString:@"http://120.25.226.186:

iOS开发——网络OC篇&网络爬虫简单介绍

网络爬虫简单介绍 先来看看网络爬虫的基本原理: 一个通用的网络爬虫的框架如图所示: 网络爬虫的基本工作流程如下: 1.首先选取一部分精心挑选的种子URL: 2.将这些URL放入待抓取URL队列: 3.从待抓取URL队列中取出待抓取在URL,解析DNS,并且得到主机的ip,并将URL对应的网页下载下来,存储进已下载网页库中.此外,将这些URL放进已抓取URL队列. 4.分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环. 以下内容均为本人个人

iOS开发网络篇—简单介绍ASI框架的使用

iOS开发网络篇—简单介绍ASI框架的使用 说明:本文主要介绍网络编程中常用框架ASI的简单使用. 一.ASI简单介绍 ASI:全称是ASIHTTPRequest,外号“HTTP终结者”,功能十分强大. ASI的实现基于底层的CFNetwork框架,因此运行效率很高.可惜作者早已停止更新,有一些潜在的BUG无人去解决 ASI的github地址 https://github.com/pokeb/asi-http-request ASI的使用参考 http://www.cnblogs.com/dot

Ns3网络仿真软件简单介绍

Ns3网络仿真软件简单介绍 1. 什么是NS-3? NS是一个开源离散事件驱动网络模拟器.官方定义:(fromhttp://www.nsnam.org/) ns-3 is a discrete-event network simulatorfor Internet systems, targeted primarily for research and educational use. ns-3is free software, licensed under the GNU GPLv2 lice

iOS DeepLinkKit使用简单介绍

Update: 2017.04.08 添加了使用iOS DeepLinkKit使用Universal Links的部分 --------------------------------------------------------- 废话不多说,先说做这个的需求: 1.应用中有些社交元素的分享会分享一个链接到facebook, twitter, google+这类的社交媒体上 2.当用户点击某个链接的时候先跳转到自己的页面,然后再传递參数到iOS应用上打开指定的分享数据 思路:iOS提供了Sc

iOS沙盒简单介绍

先简单介绍一下什么是沙盒:你可以简单理解成为一个目录,这个目录的改动不会对操作系统造成任何损失.(这里也有一点点介绍) 看看苹果的沙盒目录: 再附一张苹果官方的图 一个iOS app操作都是在自己的沙盒中进行的. 首先: Deveices,里面是各种的模拟器设备. 然后随便找一个模拟器设备.里面的data是里面的数据.然后Container里面Data中有一个Application就是该设备的安装软件. 我们可以看到里面有好多个(就算我们Reset Content and Settings,也会

网络爬虫简单介绍(python)

一.简介 爬虫就是利用代码大量的将网页前端代码下载下来使用的一种程序,一般来说常见的目的为下: 1.商业分析使用:很多大数据公司都会从利用爬虫来进行数据分析与处理,比如说要了解广州当地二手房的均价走势就可以到房屋中介的网站里去爬取当地房源的价钱除以平方米 2.训练机器:机器学习需要大量的数据,虽然网络上有许多免费的库可以提供学习,不过对于部分机器他们需要的训练资料比较新,所以需要去爬取实时的数据 3.练习爬虫技术:很多网络爬虫其实没有什么商业目的性,只是程序员拿来练习用的 4.其他程序:像是搜索

iOS开发-UIActionSheet简单介绍

UIActionSheet和UIAlertView都是ios系统自带的模态视图,模态视图的一个重要的特性就是在显示模态视图的时候可以阻断其他视图的事件响应.一般情况下我们对UIAlertView使用的比较多,UIActionSheet相对来说情况少一点,偶尔作为一个上拉菜单来展示还是非常有用的.通常如果显示一个模态的视图,可以自定义一个UIViewController,不过里面的内容和动画实现起来工作量还是非常多的. UIActionSheet介绍 介绍UIActionSheet之前需要简单的看

【iOS】Quartz2D简单介绍

一.什么是Quartz2D Quartz 2D是?个二维绘图引擎,同时支持iOS和Mac系统 Quartz 2D能完成的工作: 绘制图形 : 线条\三角形\矩形\圆\弧等 绘制文字 绘制\生成图片(图像) 读取\生成PDF 截图\裁剪图片 自定义UI控件 二.Quartz2D在iOS开发中的价值 为了便于搭建美观的UI界面,iOS提供了UIKit框架,??有各种各样的UI控件 UILabel:显?文字UIImageView:显示图片UIButton:同时显示图片和?字(能点击) 利?UIKit框