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);

}];

时间: 2024-08-02 10:57:03

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

Node.JS的表单提交及OnceIO中接受GET/POST数据的三种方法

OnceIO 是 OnceDoc 企业私有内容(文档)管理系统的底层Web框架,它可以实现模板文件.静态文件的全缓存,运行起来完全不需要I/O操作,并且支持客户端缓存优化,GZIP压缩等(只压缩一次),拥有非常好的性能,为您节约服务器成本.它的模块化功能,可以让你的Web进行分布式存储,在一个扩展包里即可包含前端.后端和数据库定义,只需通过添加/删除目录的方式就可实现功能删减,实现真正的模块化扩展.目前 OnceIO 已经开源,本文主要介绍node.js语言中的表单提交及OnceIO中接受GET

SpringMVC中controller返回json数据的两种方法

SpringMVC中controller返回json数据的两种方法 1.jsp的ajax请求: function getJson(){ $.ajax({ type:"get", dataType:"json", url:"<%=basePath %>getJson", success:function(data){ for(var i=0;i<jsonData.length;i++){ alert("Id:"

ios之NSURLConnection网络请求数据/GET与POST方法

目前可能只是单纯的贴上了一些demo的代码,但是这些代码都是请求数据应该是最基础的使用方法吧,在项目的实际开发中可能用到系统的会非常少,一般都是采用别人非常成熟的第三方开源库来实现数据请求,目前常用的第三方网络请求主要是以下几个:<h3 style="margin: 18px 0px; padding: 0px 0px 5px; border: 0px; outline: 0px; font-size: 22px; vertical-align: baseline; color: rgb(

Android--从网络获取图片的三种方法

android中获取网络图片是一件耗时的操作,如果直接获取有可能会出现应用程序无响应(ANR:Application Not Responding)对话框的情况.对于这种情况,一般的方法就是耗时操作用线程来实现.下面列三种获取url图片的方法: 1.直接获取:(容易:ANR,不建议) mImageView = (ImageView)this.findViewById(R.id.imageThreadConcept) ;Drawable drawable = loadImageFromNetwor

request获取数据的几种方法

1.request.getparameter(); 1 //只接收前台穿过来的一个指定的参数 2 String value=request.getparameter("key"); 2.request.getParameterMap();   说白了前端提交到Servlet或者Action里面的参数Map,如果你是以表单提交,那么request.getParameterMap()中将包含你表单里面所有input标签的数据,以其name为key,以其value为值,如果你是以ajax提交

C#中检查网络是否连通的二种方法

using System;  2 using System.Collections.Generic;  3 using System.Text;  4 //方法一  5 using System.Runtime;  6 using System.Runtime.InteropServices;  7 //方法二 Net2.0新增类库  8 using System.Net.NetworkInformation;  9  10 namespace InternetCheck 11 { 12    

react——获取数据的4种方法ajax()、$.ajax()、fetch()、axios

第一种:ajax() import React from 'react'; import ReactDom from 'react-dom'; import ajax from './tool.js'; class Nav extends React.Component{ constructor(){ super(); this.state = { arr: {} }; this.get = this.get.bind(this); } get(){ ajax('./data/data.json

IOS中由日期生成星期的一种方法

1 - (NSInteger)getWeekDataWithYear:(NSString *)year month:(NSString *)month day:(NSString *)day{ 2 3 // 创建并设置NSDateComponents,它可以根据制定的时间生成对应的Date,同时需要根据相应的Calender 4 NSDateComponents *comps = [[NSDateComponents alloc] init]; 5 [comps setDay:[day inte

IOS中利用NSKeyedArchiver进行数据的归档和恢复

1.相关知识点: <1> 可以利用NSKeyedArchiver 进行归档和恢复的对象类型:NSString .NSDictionary.NSArray.NSData.                        NSNumber等 <2> 使用是必须遵循NSCoding协议对象,实现两个方法: encodeWithCoder:归档对象时,将会调用该方法. initWithCoder:每次从文件中恢复对象时,调用该方法. 2.简单例子阐述详细步骤 <1> 创建一个学生