swift 初探NSURLSession

时间:2023-03-09 23:37:32
swift 初探NSURLSession

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 的使用过程:

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