Swift 工具库 Transporter

MIT
Swift 查看源码»
OS X
2015-03-30
叶秀兰

Transporter 是一个方便上传和下载的库。

特性

  • 支持并发或者顺序上传或者下载多个文件

  • 支持后台上传和下载

  • 支持进程跟踪 (单个任务或者任务组)

  • 支持重置,停止,取消,重试任务

  • header 可配置

  • 请求参数可配置

快速示例

let path = NSBundle.mainBundle().pathForResource("bigfile", ofType: "zip")let fileUrl = NSURL(fileURLWithPath: path!)!let task = UploadTask(url: "http://server.com", file: fileUrl)    .progress { sent, total in
        let per = Double(sent) / Double(total)
        println("uploading: \(per)")
    }    .completed { response, json, error in
        println("completed")
    }


 Transporter.add(task1 <--> task2 <--> task3)                     // concurrent tasks
            .progress { bytes, total in
                let per = Double(bytes) / Double(total)
                println("concurrent tasks: \(per)")
            }            .completed { alltasks in
                println("task1, task2, task3: completed")
            }            .add(task4 --> task5 --> task6)                       // serial tasks 
            .progress { bytes, total in
                println("serial tasks")
            }            .resume()

用法

// downloading tasklet task = DownloadTask(url: downloadUrl, destination: des)    .progress { bytes, total in
        let per = Double(bytes) / Double(total)
        println("downloading: \(per)")
    }    .completed { response, _, error in
        println("completed")
    }// uploading task// upload types: File, Data, Streamlet task = UploadTask(url: "http://server.com", data: uploadData)    .progress { sent, total in
        let per = Double(sent) / Double(total)
        println("uploading: \(per)")
    }    .completed { response, json, error in
        println("completed")
    }// tasktask.headers = ["key": "value"]
task.params = ["key": "value"]
task.pause()
task.cancel()
task.retry// background handling// add the following method in the app delegatefunc application(application: UIApplication, handleEventsForBackgroundURLSession identifier: String, completionHandler: () -> Void) {
    Transporter.handleEventsForBackgroundURLSection(identifier, completionHandler: completionHandler)
}// Transporter configurationsTransporter.headers = [key: value]
Transporter.timeoutIntervalForRequest = 30.0Transporter.timeoutIntervalForResource = 24 * 60 * 60.0Transporter.HTTPMaximumconnectionsPerHost = 5
的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

暂无资讯

暂无问答

Case Study

A Case Study in A3 Problem-Solving Long Patient Transportation Times The Context At Community Medical Center (CMC), two types of patients are sent to the diagnostic departments ...

2013/08/23 11:18
7
0
Dubbo分析之Transport层

系列文章 Dubbo分析Serialize层 Dubbo分析之Transport层 Dubbo分析之Exchange 层 Dubbo分析之Protocol层 前言 上一篇文章Dubbo分析之Serialize层,介绍了最底层的序列化/反序列化层,本文继续...

2018/10/23 17:17
567
0
Dubbo深入分析之Transport层

Transporter类分析 dubbo为通讯框架提供了统一的bind和connet接口,方便进行管理和扩展,封装在接口类:Transporter中: @SPI("netty") public interface Transporter { @Adaptive({Constant...

2018/10/25 15:38
25
0
An error occurred uploading to the App Store.

An error occurred uploading to the App Store. 上架到App Store报错 这两天在打包应用上架到App Store时一直报An error occurred uploading to the App Store,而且看不到报错的原因,使用...

2018/07/15 14:54
1K
1
如何用Nodejs开发自动发送email的程序

有时候,我们开发邮箱验证和密码找回功能时,需要系统自动向用户的注册邮箱发送邮件,本文阐述nodejs的javascript编程如何实现自动发送email。

2015/06/02 15:33
241
1
从ExtensionLoader看Dubbo插件化

之前很多人问我Dubbo插件化是怎么实现的,我都是简单回答SPI。了解SPI的人知道,它只是提供一种协议,并没有提供相关插件化实施的接口,不像OSGI那样有一成套实施插件化API。

2015/05/23 21:10
7K
8
开源|ns4_frame分布式服务框架开发指南

导语:宜信于2019年3月29日正式开源nextsystem4(以下简称“NS4”)系列模块。此次开源的NS4系列模块是围绕当前支付系统笨重、代码耦合度高、维护成本高而产生的分布式业务系统解决方案。NS4...

04/18 15:12
99
0
聊聊dubbo的ExecutionDispatcher

序 本文主要研究一下dubbo的ExecutionDispatcher ExecutionDispatcher dubbo-2.7.3/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/transport/dispatcher/exec...

09/02 23:11
22
0
dubbo源码分析系列(1)扩展机制的实现

#1 系列目录 - [dubbo源码分析系列(1)扩展机制的实现](http://my.oschina.net/pingpangkuangmo/blog/508963) - [dubbo源码分析系列(2)服务的发布](http://my.oschina.net/pingpangkuang...

2015/09/21 08:37
13.6K
10

没有更多内容

加载失败,请刷新页面

返回顶部
顶部