网络03

2016-03-27  本文已影响21人  木子尚武

NSURLSession实现文件上传

  1)确定请求路径
      (2)根据URL创建一个可变的请求对象
      (3)设置请求对象,修改请求方式为POST
      (4)设置请求头,告诉服务器我们将要上传文件(Content-Type)
      (5)拼接要上传的数据体(在请求体中按照既定的格式拼接要上传的文件参数和非文件参数等数据)
          001 拼接文件参数
          002 拼接非文件参数
          003 添加结尾标记
      (6)发送请求上传文件
      (7)解析服务器返回的数据
  //请求体拼接格式
      //分隔符:----WebKitFormBoundaryhBDKBUWBHnAgvz9c

      //01.文件参数拼接格式

       --分隔符
       Content-Disposition:参数
       Content-Type:参数
       空行
       文件参数

      //02.非文件拼接参数
       --分隔符
       Content-Disposition:参数
       空行
       非文件的二进制数据

      //03.结尾标识
      --分隔符--
  /*
调用该方法上传文件数据
如果文件数据很大,那么该方法会被调用多次
参数说明:
   totalBytesSent:已经上传的文件数据的大小
   totalBytesExpectedToSend:文件的总大小
*/
-(void)URLSession:(nonnull NSURLSession *)session task:(nonnull NSURLSessionTask *)task didSendBodyData:(int64_t)bytesSent totalBytesSent:(int64_t)totalBytesSent totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend
{
  NSLog(@"%.2f",1.0 * totalBytesSent/totalBytesExpectedToSend);
}
上一篇下一篇

猜你喜欢

热点阅读