17.Swift 原生网络通信

17.Swift 原生网络通信


IOS9.0后,就打算废弃NSURLConnection,主推NSURLSession


sendSynchronousRequest

同步Request
NSURLConnection.sendSynchronousRequest(request: NSURLRequest, returningResponse response: AutoreleasingUnsafeMutablePointer<NSURLResponse?>) throws -> NSData

    func usingSendSynchronousRequest(){
        do{
            var response:NSURLResponse?
            // 发同步请求
            let data:NSData = try NSURLConnection.sendSynchronousRequest(NSURLRequest(URL: NSURL(string: "http://www.baidu.com")!), returningResponse: &response)

            if let d:NSData = data {
                NSLog("\(NSString(data: d, encoding: NSUTF8StringEncoding))")
            }

            if let r:NSURLResponse = response{
                NSLog("\(r)")
            }

        }catch let error as NSError{
            NSLog("\(error.localizedDescription)")
        }
    }

sendAsynchronousRequest

异步Request
NSURLConnection.sendAsynchronousRequest(request: NSURLRequest, queue: NSOperationQueue, completionHandler handler: (NSURLResponse?, NSData?, NSError?) -> Void)

    func usingSendAsynchronousRequest(){
        // 异步请求
        NSURLConnection.sendAsynchronousRequest(NSURLRequest(URL: NSURL(string: "http://www.baidu.com")!), queue: NSOperationQueue()) { (resp:NSURLResponse?, data:NSData?, error:NSError?) -> Void in
            if let e:NSError = error{
                NSLog("\(e.localizedDescription)")
            }else{
                NSLog("\(NSString(data: data!, encoding: NSUTF8StringEncoding))")
            }
        }
    }

NSURLSession

NSURLSession实例化一个网络请求task
NSURLSession.dataTaskWithRequest(request: NSURLRequest, completionHandler: (NSData?, NSURLResponse?, NSError?) -> Void) -> NSURLSessionDataTask

    func usingNSURLSession(){
        let session = NSURLSession.sharedSession()
        let request = NSURLRequest(URL: NSURL(string: "http://baidu.com")!)
        let task = session.dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in
            let string = NSString(data: data!, encoding: NSUTF8StringEncoding)
            NSLog("\(string)")
        })
        task.resume()
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值