从网络请求数据

作者: exialym | 来源:发表于2016-05-13 20:24 被阅读29次

    NSURL

    这是最最基础的类,访问网络资源离不开它,它有不少很有用的方法,比如从字符串创建一个URL。还有创建一个相对于其他URL的URL

    let url = NSURL(string: urlString)
    let relativeurl = NSURL(string: "\(Int(width))/\(Int(height))/sports/", relativeToURL: NSURL(string:"http://lorempixel.com/"))
    relativeurl?.host//lorempixel.com/
    

    对于文件的URL可以使用NSURL(fileURLWithPath:)
    NSURL是不可变的,如果在创建之后还想改变它,请使用NSMutableURL。

    NSURLRequest

    NSURLRequest描述如何访问一个URL

    NSURLRequest(URL:,cachePolicy:,timeoutInterval:)
    

    可以设置它的缓存策略,超时时间等

    var r = NSMutableURLRequest(URL: NSURL(string: "e")!, cachePolicy: NSURLRequestCachePolicy.ReloadIgnoringCacheData, timeoutInterval: 2.0)
    r.HTTPMethod//HTTP请求方法POST,GET等
    r.allHTTPHeaderFields//HTTP请求头部
    r.HTTPBody//HTTP请求体
    r.allowsCellularAccess
    

    NSURLSession

    有个哥们写的很好,我转载了,这里就不啰嗦了。

            if let url = NSURL(string: urlString) {
                let session = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration(), delegate: self, delegateQueue: myQueue)
                let dataTask = session.dataTaskWithURL(url, completionHandler: { (data:NSData?, response:NSURLResponse?, error:NSError?) -> Void in
                    if data == nil {
                        self.imageView.image = nil
                    } else {
                        if let image = NSImage(data: data!) {
                            dispatch_async(dispatch_get_main_queue(), { () -> Void in
                                self.imageView.image = image
                            })
                        }
                    }
                })
                dataTask.resume()
            }
    

    相关文章

      网友评论

        本文标题:从网络请求数据

        本文链接:https://www.haomeiwen.com/subject/sjdmrttx.html