一个完整的自动化工具,自动提单是非常重要的一环,bug单可以作为衡量自动化工具的产出指标,可以直接说明该自动化工具的价值。而提单离不开文件上传,接下来详细介绍一下ios的文件上传。
ios文件上传可以通过NSURLConnection、NSURLSession、AFN等方式上传,因为不想依赖于第三方框架,我这里选用了NSURLConnection
1、文件上传设置请求体的数据格式:
//请求体拼接格式
//分隔符:----WebKitFormBoundaryhBDKBUWBHnAgvz9c
//01.文件参数拼接格式
--分隔符
Content-Disposition:参数
Content-Type:参数
空行
文件参数
//02.非文件拼接参数
--分隔符
Content-Disposition:参数
空行
非文件的二进制数据
//03.结尾标识
--分隔符--
2、NSURLConnection的方式
举一个具体的例子,表单有两个参数,file_name和file_path,file_name表示文件的名字,file_path表示文件的内容,上传的表单格式如下:
在ios中的拼接格式如下:
/*
1. 设置请求头
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryOhB08CzI96Eux6PO
2. 按照固定的格式拼接请求体的数据
------WebKitFormBoundaryOhB08CzI96Eux6PO
Content-Disposition: form-data; name="file_path"; filename="xx.zip"
Content-Type: application/octet-stream
空行
文件参数
------WebKitFormBoundaryOhB08CzI96Eux6PO
Content-Disposition: form-data; name="file_name"
空行
xx.zip
------WebKitFormBoundaryO