swift 初探NSURLSession

进行封装,
新建一个类。network
class Network1: NSObject {
// 没有参数+结果的get 自定义 HTTP method 和 URL+闭包
static func request(method: String, url: String, callback: (data: NSData!, response: NSURLResponse!, error: NSError!) -> Void) {
let session = NSURLSession.sharedSession()
let request = NSMutableURLRequest(URL: NSURL(string: url)!)
request.HTTPMethod = method
let task = session.dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in
callback(data: data, response: response , error: error)
})
task.resume()
}
}
回到主界面调用:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let mainBtn = UIButton.init(frame: CGRectMake(200, 200, 100, 50))
mainBtn.backgroundColor = UIColor.redColor()
mainBtn.addTarget(self, action: #selector(mainBtnBeTapped), forControlEvents: .TouchUpInside)
self.view.addSubview(mainBtn)
}
func mainBtnBeTapped(sender:AnyObject) {
//调用网络请求 https://httpbin.org/get 不带参数
Network.request("GET", url: "https://httpbin.org/get") { (data, response, error) in
print("just wait for 5 seconds!")
sleep(5)
let string = NSString(data: data, encoding: NSUTF8StringEncoding
print(string)
}
}
}
NSURLSession 的使用过程:
- 构造 NSURLRequest
- 确定 URL
- 确定 HTTP 方法(GET、POST 等)
- 添加特定的 HTTP 头
- 填充 HTTP Body
- 驱动 session.dataTaskWithRequest 方法,开始请求
swift 初探NSURLSession的更多相关文章
- Swift初探01 变量与控制流
Swift初探01 变量与控制流 输出"hello world"是几乎学习所有编程语言的第一课,这是程序员的情怀. 所以我们学习swift的第一步,就是输出一句"Hell ...
- iOS开发——网络Swift篇&NSURLSession加载数据、下载、上传文件
NSURLSession加载数据.下载.上传文件 NSURLSession类支持三种类型的任务:加载数据.下载和上传.下面通过样例分别进行介绍. 1,使用Data Task加载数据 使用全局的 ...
- 现代的新语言--Swift初探
新的语言 WWDC简短的介绍,新的语言Swift就问世了,尽管新语言的名字导致贴吧下歌手粉丝和开发人员们争抢地盘- -,只是雨燕就是这么来了. WWDC keynote里给Swift打上了非常多标签: ...
- Swift - 使用NSURLSession同步获取数据(通过添加信号量)
过去通过 NSURLConnection.sendSynchronousRequest() 方法能同步请求数据.从iOS9起,苹果建议废除 NSURLConnection,使用 NSURLSessio ...
- Swift - 使用NSURLSession加载数据、下载、上传文件
NSURLSession类支持三种类型的任务:加载数据.下载和上传.下面通过样例分别进行介绍. 1,使用Data Task加载数据 使用全局的sharedSession()和dataTaskWithR ...
- Swift初探一
今天安装了一下Xcode6-Beta版,想来体验一下Swift的魅力:安装Swift系统最低版本号为:10.9.3 仅仅看看一点The Swift Programming Language,以下给大家 ...
- swift初探(供objective c开发人员參考)
6月初的wwdc苹果推出了一门新的开发语言swift.系统10.9.3以上安装xcode6 beta版就可以体验swift. 苹果公司做了尽可能多的努力让这门语言迅速成为一个工业级的有用编程语言,而不 ...
- Swift初探02 数组、集合、元组、字典
数组.集合.元组.字典 每一门语言基本都会有这些数据结构,swift也不例外,而作为一门现代的语言,swift提供了很多的现成的方法给我们选择. 一.数组 01 数组的定义 // 三种声明方式 var ...
- Swift初探03 字符串操作
字符串操作 01 获取长度 var a = "he l lo" print(a.count) // 计算空格,输出7 02 String.Index类型 String.Index类 ...
随机推荐
- 3、软件评测师要阅读的书籍 - IT软件人员书籍系列文章
软件评测师在项目组的作用也是非常大的.微软的做法是一个软件工程师搭配两个软件评测师,这样能够减少软件系统存在的问题.但是,笔者发现,软件评测在这些年的发展还是比较缓慢的,除了人力进行的测试外,就是软件 ...
- 《Hey程序员 你适合加入创业公司吗?》再补充
笔者经过多年的走访发现,不是所有优秀的程序员都能在创业公司如鱼得水.根据笔者的经验,具备下面几点优秀品质的程序员会更容易适应创业公司的环境. 1.娴熟的调试技巧可以说,程序员的大部分时间都花在调试程序 ...
- PHP数据的序列化/反序列化
最近在接触一个叫做medoo的mysql框架,这个框架有一个特点,在insert/update时,如果你给进的数据是array的话会自动转成序列化字符串,说实话这个东西以前还没怎么接触过,索性去搜索了 ...
- android项目中配置NDK自动编译生成so文件
1 下载ndk开发包 2 在android 项目中配置编译器(以HelloJni项目为例) 2.1 创建builer (a)Project->Properties->Builder ...
- Sqlite学习笔记(四)&&SQLite-WAL原理
Sqlite学习笔记(三)&&WAL性能测试中列出了几种典型场景下WAL的性能数据,了解到WAL确实有性能优势,这篇文章将会详细分析WAL的原理,做到知其然,更要知其所以然. WAL是 ...
- 简单阐述下Ajax以get方式请求的步骤 初学,不对的话,跟我说下,谢谢!
首先, 在GET提交中"=,&"等字符与请求字符串的关键字相混淆.所以: 第一步,先对get提交过来的数据进行编码. 第二步,实例化ajax对象. 第三步,创建对服务器的连 ...
- html5+css3实现跑动的爱心/动态水滴效果[原创][5+3时代]
大风起兮云飞扬,安得猛士兮走四方!html5+css3,不学不行. 做web开发已经有好几年了,见证了太多语言的崛起和陨落. 其实作为一个程序员最苦逼的事情莫过于每天要不停的追赶各大公司新出的框架和语 ...
- linux 源码安装mysql 5.5
今天在ubuntu和CentOS下,用源码反复安装了许多次mysql,趁还没忘记,赶紧记下来... 在ubuntu和CentOS下安装过程倒是没什么差别. 0.下载源码, ...
- IIS7 配合 vs2013内置 LocalDB使用
错误提示: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. (provide ...
- css多栏自适应布局
css多栏自适应布局还是需要总结一下的,都是基本功. 一般使用position属性布局,或者用float属性布局,也可以使用display属性. 看资料说position适合首页布局,因为首页内容往往 ...