简介

Pitaya是一个基于NSURLSession开源的适合大文件上传的HTTP请求库.十分小巧.
PitayaManager
简介
PitayaManager负责
- 构造 NSURLRequest
- 确定 URL
- 确定 HTTP 方法(GET、POST 等)
- 添加特定的 HTTP 头
- 填充 HTTP Body
2.驱动 session.dataTaskWithRequest 方法,开始请求
实现multipart/form-data请求
为什么这个库适合大文件的上传呢,原因就在PitayaManager的buildBody()和 buildHeader()方法中.
在buildHeader()方法中,判断PitayaManager中的实例变量file是否为空,非空则表示有文件上传,添加Content-Type头字段
1 | Content-Type: multipart/form-data; boundary=PitayaUGl0YXlh |
boundary是自己指定的间隔符.
在buildBody()方法中,如上判断是否有文件需要上传,有则按照如下格式设置body
1 | --PitayaUGl0YXlh |
这样,就可以完成multipart/form-data请求的创建,实现文件上传.
降低耦合
虽然PitayaManager的功能已经足够,但是如果直接将PitayaManager使用到项目中,那么如果有一天对PitayaManager的功能不满意,替换项目中的PitayaManager接口的工作量将十分多.所以,Pitaya运用了适配器模式,将PitayaManager再进行封装,创建了Pitaya类.这样,如果需要替换PitayaManager,只需要在Pitaya类中进行修改.