进行封装,

新建一个类。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 的使用过程:

    1. 构造 NSURLRequest
      1. 确定 URL
      2. 确定 HTTP 方法(GET、POST 等)
      3. 添加特定的 HTTP 头
      4. 填充 HTTP Body
    2. 驱动 session.dataTaskWithRequest 方法,开始请求

swift 初探NSURLSession的更多相关文章

  1. Swift初探01 变量与控制流

    Swift初探01 变量与控制流 输出"hello world"是几乎学习所有编程语言的第一课,这是程序员的情怀. 所以我们学习swift的第一步,就是输出一句"Hell ...

  2. iOS开发——网络Swift篇&NSURLSession加载数据、下载、上传文件

    NSURLSession加载数据.下载.上传文件   NSURLSession类支持三种类型的任务:加载数据.下载和上传.下面通过样例分别进行介绍.   1,使用Data Task加载数据 使用全局的 ...

  3. 现代的新语言--Swift初探

    新的语言 WWDC简短的介绍,新的语言Swift就问世了,尽管新语言的名字导致贴吧下歌手粉丝和开发人员们争抢地盘- -,只是雨燕就是这么来了. WWDC keynote里给Swift打上了非常多标签: ...

  4. Swift - 使用NSURLSession同步获取数据(通过添加信号量)

    过去通过 NSURLConnection.sendSynchronousRequest() 方法能同步请求数据.从iOS9起,苹果建议废除 NSURLConnection,使用 NSURLSessio ...

  5. Swift - 使用NSURLSession加载数据、下载、上传文件

    NSURLSession类支持三种类型的任务:加载数据.下载和上传.下面通过样例分别进行介绍. 1,使用Data Task加载数据 使用全局的sharedSession()和dataTaskWithR ...

  6. Swift初探一

    今天安装了一下Xcode6-Beta版,想来体验一下Swift的魅力:安装Swift系统最低版本号为:10.9.3 仅仅看看一点The Swift Programming Language,以下给大家 ...

  7. swift初探(供objective c开发人员參考)

    6月初的wwdc苹果推出了一门新的开发语言swift.系统10.9.3以上安装xcode6 beta版就可以体验swift. 苹果公司做了尽可能多的努力让这门语言迅速成为一个工业级的有用编程语言,而不 ...

  8. Swift初探02 数组、集合、元组、字典

    数组.集合.元组.字典 每一门语言基本都会有这些数据结构,swift也不例外,而作为一门现代的语言,swift提供了很多的现成的方法给我们选择. 一.数组 01 数组的定义 // 三种声明方式 var ...

  9. Swift初探03 字符串操作

    字符串操作 01 获取长度 var a = "he l lo" print(a.count) // 计算空格,输出7 02 String.Index类型 String.Index类 ...

随机推荐

  1. PNote桌面贴小工具 - 项目管理系列文章

    项目经理在项目过程中将会使用到各种工具,以期能够相互配合,对项目组的各种管理工作进行工作的开展和完成.以前就写过一些项目工具的使用,见下链接: 1.Mindjet MindManager思维导图工具的 ...

  2. JavaScript Patterns 5.3 Private Properties and Methods

    All object members are public in JavaScript. var myobj = { myprop : 1, getProp : function() { return ...

  3. javax.servlet.ServletException cannot be resolved to a type错误解决方法

    在页面中使用全局路径时${pageContext.request.contextPath}出现javax.servlet.ServletException cannot be resolved to ...

  4. WIN32 API编程之 tap顺序

    用CreateWindow 函数创建的控件,如果想使用tap键切换,最简单的做法是:主窗口有WS_EX_CONTROLPARENT扩展属性,控件有WS_TAPSTOP属性. 然后最重要的是,在处理消息 ...

  5. 其他(一)Visual Studio 自动排版快捷键

    自动对齐快捷键为:ctrl+k+d 按快捷键前,请先将需要对齐的代码选中.不选中是不行的.

  6. Python特殊语法--filter、map、reduce、lambda

    一.filter(function, sequence) 对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple( ...

  7. 浅谈 Linux 内核无线子系统

    浅谈 Linux 内核无线子系统 本文目录 1. 全局概览 2. 模块间接口 3. 数据路径与管理路径 4. 数据包是如何被发送? 5. 谈谈管理路径 6. 数据包又是如何被接收? 7. 总结一下 L ...

  8. linux原始套接字(4)-构造IP_UDP

    一.概述                                                    同上一篇tcp一样,udp也是封装在ip报文里面.创建UDP的原始套接字如下: (soc ...

  9. STM32之USART-RS485

    转载自:http://www.cnblogs.com/itloverhpu/p/3278014.html 1.今天调试HDMI8X8背板和板卡的通信,一直有问题:背板可以和PC正常通信,背板可以发命令 ...

  10. jquery之hasClass

    看jquery的在线手册,hasClass的例子给的是这个 html部分: <div class="protected"></div><div> ...