博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS学习笔记7-NSURLSession
阅读量:6083 次
发布时间:2019-06-20

本文共 1356 字,大约阅读时间需要 4 分钟。

在iOS9.0之后,以前使用的NSURLConnection过期,苹果推荐使用NSURLSession来替换NSURLConnection完成网路请求相关操作。

  NSURLSession的使用非常简单,先根据会话对象创建一个请求Task,然后执行该Task即可。

  NSURLSessionTask本身是一个抽象类,在使用的时候,通常是根据具体的需求使用它的几个子类

 

 

 

二、发送GET请求

  使用NSURLSession发送GET请求的方法和NSURLConnection类似,整个过程如下:

    1)确定请求路径(一般由公司的后台开发人员以接口文档的方式提供),GET请求参数直接跟在URL后面

    2)创建请求对象(默认包含了请求头和请求方法【GET】),此步骤可以省略

    3)创建会话对象(NSURLSession)

    4)根据会话对象创建请求任务(NSURLSessionDataTask)

    5)执行Task

    6)当得到服务器返回的响应后,解析数据(XML|JSON|HTTP)

 

三、发送POST请求

  使用NSURLSession发送POST请求的方法和NSURLConnection类似,整个过程如下:

    1)确定请求路径(一般由公司的后台开发人员以接口文档的方式提供)

    2)创建可变的请求对象(因为需要修改),此步骤不可以省略

    3)修改请求方法为POST

    4)设置请求体,把参数转换为二进制数据并设置请求体

    5)创建会话对象(NSURLSession)

    6)根据会话对象创建请求任务(NSURLSessionDataTask)

    7)执行Task

    8)当得到服务器返回的响应后,解析数据(XML|JSON|HTTP)

 

 

 

 

NSURLSession代理方法

接收到服务器响应的时候调用该方法-(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDisposition))completionHandler
接收到服务器返回数据的时候会调用该方法,如果数据较大那么该方法可能会调用多次-(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data
当请求完成(成功|失败)的时候会调用该方法,如果请求失败,则error有值-(void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error

 

转载于:https://www.cnblogs.com/adodo/p/5195186.html

你可能感兴趣的文章
软件开发10种学习方法
查看>>
烂泥:k8s安装与配置ingress(一)
查看>>
Electron all the Angular 2 Things
查看>>
常用shell实例1
查看>>
通用权限管理设计 之 数据库结构设计
查看>>
MYSQL服务器my.cnf配置文档详解
查看>>
springboot-2-springboot的文件上传和下载
查看>>
TPYBoardv201:带以太网的MicroPython开发板
查看>>
Micropython实战之TPYBoardv102 DIY金属检测仪
查看>>
ssh免密连接互信认证
查看>>
ElasticSearch使用
查看>>
使用grep、awk统计查询日志
查看>>
Spring 5 core 中的 @NonNull 是个什么鬼?!
查看>>
vsftpd系列--2--匿名访问控制
查看>>
Excel工作表保护破解方法
查看>>
实现geo相关
查看>>
SSM项目搭建三(终)
查看>>
vmware esxi基础篇之模版与克隆
查看>>
拥抱 Gradle: 下一代自动化工具
查看>>
CyclicBarrier让多线程齐步走
查看>>