NSURLSession加载数据 下载上传
来源:互联网 发布:linux cpu 进程 编辑:程序博客网 时间:2024/06/05 09:40
NSURLSession类支持三种类型的任务 :加载数据 下载和上传 为data task download task 和 upload task session task是整个NSURLSeesion架构的核心
//加载数据 func sessionLoadData() { //创建NSURL对象 var url = NSURL(string: "http://m.weather.com.cn/data/101010100/html") //创建请求的对象 var request = NSURLRequest(URL: url!) let session = NSURLSession.sharedSession() var dataTask = session.dataTaskWithRequest(request, completionHandler: { (data:NSData?, resp:NSURLResponse?, error:NSError?) -> Void in //返回错误的情况 if error != nil { print(error?.code) print(error?.description) }else { var jsonString = NSString(data: data!, encoding: NSUTF8StringEncoding) print(jsonString) } })as NSURLSessionTask //使用resume方法启动任务 dataTask.resume() }
//加载数据 func sessionSimpleDownLoad() { //创建NSURL对象 var url = NSURL(string: "http://m.weather.com.cn/data/101010100/html") //创建请求的对象 var request = NSURLRequest(URL: url!) let session = NSURLSession.sharedSession() var dataDownLoadTask = session.downloadTaskWithRequest(request) { (var location:NSURL?, resp:NSURLResponse?, error:NSError?) -> Void in //输出下载文件原来的存放目录 print("location:\(location)") //location的位置转化 var locationPath = location?.path //拷贝到自己的目录中 let document = NSHomeDirectory() + "/Documents/1.jpg" //创建文件的管理器 do { self.fileManger = try NSFileManager.defaultManager() } catch{ print("创建文件管理器失误") } do { try self.fileManger.moveItemAtPath(locationPath!, toPath: document) } catch{ print("转化路径失败") } } //输出文件路径 print("location \(document)") //使用resume方法启动任务 dataDownLoadTask.resume() }
//获取下载的获取进度的话
func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didFinishDownloadingToURL location: NSURL) { //下载结束的时候 print("下载结束") } func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didWriteData bytesWritten: Int64, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64) { //获取进度 var written = (CGFloat)(bytesWritten) var total = (CGFloat)(totalBytesExpectedToWrite) //目前的进度 现在的除以总共的 var pro = written / total print("下载进度\(pro)") } func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didResumeAtOffset fileOffset: Int64, expectedTotalBytes: Int64) { //下载偏移 主要用于暂停续传 print("下载偏移") }
上传数据
func sessionUpload() { //创建NSURL对象 var url = NSURL(string: "http://m.weather.com.cn/data/101010100/html") //创建请求的对象 var request = NSURLRequest(URL: url!) let session = NSURLSession.sharedSession() //上传的数据流 var document = NSHomeDirectory() + "/Documents/1.jpg" var imageData = NSData(contentsOfFile: document) //上传的任务 var uploadTask = session.uploadTaskWithRequest(request, fromData: imageData) { (data:NSData?, resp:NSURLResponse?, error:NSError?) -> Void in //上传完毕之后判断 print("上传完毕") } //执行任务 uploadTask.resume() } }
0 0
- NSURLSession加载数据 下载上传
- Swift - 使用NSURLSession加载数据、下载、上传文件
- NSURLSession的上传和下载
- NSURLSession加载网络HTML数据
- 关于NSURLSession的上传和下载
- 关于NSURLSession的上传和下载
- 关于 NSURLSession 的上传和下载
- iOS -- NSURLSession网络请求,上传,下载
- NSURLSession实现文件下载和文件上传
- NSURLSession-介绍、上传、下载(2)
- iOS NSURLSession 实现网络请求-文件下载-上传-后台下载
- IOS7 新特性 NSURLSession的上传和下载
- 网络请求 NSURLsession(get、post、下载、上传)
- iOS开发 ----- 网络请求5 ----- NSURLsession实现上传数据
- OC 下载数据 与请求登录 NSURLSession的使用
- 数据上传,下载(二)
- 数据上传、下载
- nsurlsession 图片上传
- AJAX实现多任务
- MAC os常见操作
- 最短路径—Dijkstra算法和Floyd算法
- FMDB - - 归纳整理- Vic_Li
- 算法导论 第三章 函数的增长,3.1练习个人解答(Sor)
- NSURLSession加载数据 下载上传
- 音频播放STKAudioPlayer
- iOS第三方支付-微信支付
- 2013计算机视觉代码合集
- HUNAN 13323 数字整除
- [kuangbin带你飞]专题九 连通图题解报告-差1题
- iOS客户端的微信支付接入
- QT5.5移植到ARM全攻略
- floyd算法