iOS中从网络获取数据的几种方法的比较

 IOS中获取网络数据一般有三种:1、NSURLCondition(已过时) 2、NSURLSession  3、三方库AFNetWorking

  NSURLSession 是苹果对NSULRCondition的替代品,NSURLSession比NSURLCondition多了

    1、可配置的数据信息NSURLSessionConfiguration,NSURLSessionConfiguration使你可以设置你要请求的数据,通常的设置如缓存,也可以使用默认的配置信息defaultConguration

    2、 NSURLSession其实就是一个对话,每次建立一个对话需要创建并启动一个task,NSURLSession中有三种task:NSURLSessionDatatask(请求数据的任务)、NSURLDownloadTask(下载文件)、NSURLUploadTask(上传数据、get、post1、post2)三种。每种task都有一种或两种不同的方式供选择,想了解的朋友可以逐个试一下。

    3、可断点续传

  由于NSULRCondition、NSURLSession在发送post2请求时需要编写大量的不可重用而且又很复杂的请求头信息,有些在ios中造诣很牛叉的人就在NSULRCondition的基础上封装了三方库AFNetWorking,等到苹果公布NSURLSession的时候,AFNetWorking也更新了对NSURLSession的封装。

所以在AFNetWorking中发送post2请求时就变的非常的方便。下面贴上部分代码:

 [manager POST:urlStr parameters:data constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    NSString *path=[[NSBundle mainBundle] pathForResource:@"image.png" ofType:@""];
    [formData appendPartWithFileURL:[NSURL URLWithString:path] name:@"image" fileName:@"image.png" mimeType:@"image/jpg" error:nil];//这一句直接把post2种需要的请求头等信息都封装了,有兴趣的可以去了解一个具体封装的是什么信息
//mimeType 共有5种 image/png image/jpg text/json text/html video/mp4
  } success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"resposeObject %@",responseObject);
  } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"error %@",error);
  }];

ps:iOS----------取数据的两种取法

NSMutableArray * dataArray =[responseDictionary valueForKeyPath:@"data.list_dic.list"];
    NSMutableArray * dataArray =responseDictionary[@"data"][@"list_dic"][@"list"];

总结

以上所述是小编给大家介绍的iOS中从网络获取数据的几种方法的比较,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言。

(0)

相关推荐

  • IOS开发之判断两个数组中数据是否相同实例详解

    IOS开发之判断两个数组中数据是否相同实例详解 前言: 工作中遇到的问题,这里记录下,也许能帮助到大家 实例代码: NSArray *array1 = [NSArray arrayWithObjects:@"a", @"b", @"c", nil nil]; NSArray *array2 = [NSArray arrayWithObjects:@"b", @"a", @"c", nil

  • Vue axios 中提交表单数据(含上传文件)

    我们经常使用表单来上传数据,以及上传文件,那么怎么在表单提交成功的时候接受服务器的响应,并作出相应操作. 当然使用一般jQuery上传对象的格式也是可以的,如果使用传统的表单上传呢? <!DOCTYPE html> <html lang="en"> <head> <title></title> <meta charset="UTF-8"> <meta name="viewport

  • iOS中FMDB数据库之增删改查使用实例

    FMDB是一个轻量级的数据库,用于将网络资源存储在本地.FMDB 将 SQLite API 进行了很友好的封装,使用上非常方便,对于那些使用纯 Sqlite API 来进行数据库操作的 app,可以考虑将其迁移到基于 FMDB 上,这对于以后数据库相关功能的开发维护,可以提高不少效率. 什么是FMDB FMDB是iOS平台的SQLite数据库框架 FMDB以OC的方式封装了SQLite的C语言API FMDB的优点 使用起来更加面向对象,省去了很多麻烦.冗余的C语言代码 对比苹果自带的Core

  • iOS实现UITableView数据为空时的提示页面

    前言 相信对于iOS开发者们来说,在开发过程中,经常用UITableView,一定会遇到数据为空的情况,这时需要在空页面上放一个图片和一行文字提示数据为空,下面整理了两种方法来实现这个功能. 第一个是继承UITableView,在新类中集成图片和文字 #import <UIKit/UIKit.h> #import "Const.h" @interface WFEmptyTableView : UITableView @property (nonatomic, assign)

  • iOS开发之如何通过PUT请求上传数据

    一.什么是PUT请求 PUT请求是请求服务器存储一个资源,并用Request-URI作为其标识,跟POST类似,但不常用,PUT请求比较少见.HTML表单也不支持这个.本质上来讲, PUT和POST极为相似,都是向服务器发送数据,但它们之间有一个重要区别,PUT通常指定了资源的存放位置,而POST则没有,POST的数据存放位置由服务器自己决定.举个例子:如一个用于提交博文的URL,/addBlog.如果用PUT,则提交的URL会是像这样的"/addBlog/abc123",其中abc1

  • iOS中从网络获取数据的几种方法的比较

    IOS中获取网络数据一般有三种:1.NSURLCondition(已过时) 2.NSURLSession  3.三方库AFNetWorking NSURLSession 是苹果对NSULRCondition的替代品,NSURLSession比NSURLCondition多了 1.可配置的数据信息NSURLSessionConfiguration,NSURLSessionConfiguration使你可以设置你要请求的数据,通常的设置如缓存,也可以使用默认的配置信息defaultCongurati

  • IOS中Json解析实例方法详解(四种方法)

    作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有的json代码格式比较混乱,可以使用此"http://www.bejson.com/"网站来进行JSON格式化校验(点击打开链接).此网站不仅可以检测Json代码中的错误,而且可以以视图形式显示json中的数据内容,很是方便. 从IOS5开始,APPLE提供了对json的原生支持(NSJSONSerialization),但是为了兼容以前的iOS版本,可以使用第三方库来解析Json. 本文将介绍Tou

  • jQuery使用JSONP实现跨域获取数据的三种方法详解

    本文实例讲述了jQuery使用JSONP实现跨域获取数据的三种方法.分享给大家供大家参考,具体如下: 第一种方法是在ajax函数中设置dataType为'jsonp' $.ajax({ dataType: 'jsonp', url: 'http://www.a.com/user?id=123', success: function(data){ //处理data数据 } }); 第二种方法是利用getJSON来实现,只要在地址中加上callback=?参数即可 $.getJSON('http:/

  • 详细介绍在pandas中创建category类型数据的几种方法

    在pandas中创建category类型数据的几种方法之详细攻略 T1.直接创建 category类型数据 可知,在category类型数据中,每一个元素的值要么是预设好的类型中的某一个,要么是空值(np.nan). T2.利用分箱机制(结合max.mean.min实现二分类)动态添加 category类型数据 输出结果 [NaN, 'medium', 'medium', 'fat'] Categories (2, object): ['medium', 'fat']    name    ID

  • React中获取数据的3种方法及优缺点

    为了保证的可读性,本文采用意译而非直译. 在执行 I/O 操作(例如数据提取)时,要先发送网络请求,然后等待响应,接着将响应数据保存到组件的状态,最后进行渲染. 在 React 中生命周期方法.Hooks和 Suspense是获取数据的方法.接下用事例演示一下如何使用它们并说明每种方法的优点和缺点,以便咱们更好的编写异步操作代码. 1.使用生命周期方法请求数据 应用程序Employees.org做两件事: 1.一进入程序就获取20名员工. 2.可以通过过滤条件来筛选员工. 在实现这两个需求之前,

  • iOS中设置view圆角化的四种方法示例

    前言 在最近进行项目性能优化的过程中,遇到view圆角优化的问题,有一些粗略的看法,现总结一下.分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 设置圆角目前知道的有四种方法: 1.通过shapeLayer设置 2.通过view的layer设置 3.通过BezierPath设置 4.通过贴图的方式设置 1.shapeLayer的实现 通过bezizerpath设置一个路径,加到目标视图的layer上.代码如下: // 创建一个view UIView *showView = [[U

  • iOS中设置网络超时时间+模拟的方法详解

    设置方法如下: 在封装的网络请求类里面如下设置 AFWEBAPI_REQUEST_TIMEOUT 这个参数为超时时间 #define AFWEBAPI_REQUEST_TIMEOUT 20 #pragma mark - 单例 & 构造函数 + (instancetype)sharedTools { static WXNetworkTools *instance; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ i

  • php中模拟POST传递数据的两种方法分享

    方法1 复制代码 代码如下: $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://192.168.1.135/turntable/get_jump.php"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_POSTFIELDS, $array); curl_exec($ch); curl_close($ch); 方法2 复制代码 代码如下: $d

  • Flask中获取小程序Request数据的两种方法

    Flask中获取小程序Request数据的两种方法 作为后端屌对于前端确实讳莫如深,JS中的类型Object竟然不能直接通过POST传入到后台Flask中,您会发现获取的是[object Object],这货在Flask中只是个Str,哈哈... 于是,开始寻求解决方案: 方案一,通过GET或者POST传参,将Object转换为Str请求数据: 1.在util.js中定义一个JS函数: function json2Form(json) { var str = []; for (var p in

  • 在iOS中使用OpenGL ES实现绘画板的方法

    今天我们使用 OpenGL ES 来实现一个绘画板,主要介绍在 OpenGL ES 中绘制平滑曲线的实现方案. 首先看一下最终效果: 在 iOS 中,有很多种方式可以实现一个绘画板,比如我的另外一个项目 MFPaintView 就是基于 CoreGraphics 实现的. 然而,使用 OpenGL ES 来实现可以获得更多的灵活性,比如我们可以自定义笔触的形状,这是其他实现方式做不到的. 我们知道,OpenGL ES 中只有 点.直线.三角形 这三种图元.因此, 怎么在 OpenGL ES 中绘

随机推荐