美文网首页
iOS原生网络请求框架之NSURLSessionUploadTa

iOS原生网络请求框架之NSURLSessionUploadTa

作者: CoderXYF | 来源:发表于2016-11-15 21:06 被阅读145次

    文件上传在开发中很常见,比如上传头像。苹果原生API里提供的NSURLSessionUploadTask可供我们实现文件上传。实现代码如下:

    上传成功的控制台打印:

    上传的data拼接格式固定,下面单独贴出来:

    -(NSData *)bodyData

    {

    NSMutableData *data = [NSMutableData data];

    //01 拼接文件参数

    /*

    --分隔符

    Content-Disposition: form-data; name="file"; filename="Snip20161126_210.png"

    Content-Type: image/png

    空行

    文件数据

    */

    [data appendData:[[NSString stringWithFormat:@"--%@",Kboundary] dataUsingEncoding:NSUTF8StringEncoding]];

    [data appendData:KnewLine];

    //name:file 服务器规定

    //filename:该文件上传到服务器之后的名称

    //username|pwd

    [data appendData:[@"Content-Disposition: form-data; name=\"file\"; filename=\"bbbcccxxx.png\"" dataUsingEncoding:NSUTF8StringEncoding]];

    [data appendData:KnewLine];

    //要上传文件的二进制数据类型  MIMEType 组成:大类型/小类型

    [data appendData:[@"Content-Type: image/png" dataUsingEncoding:NSUTF8StringEncoding]];

    [data appendData:KnewLine];

    [data appendData:KnewLine];

    NSData *imageData = [NSData dataWithContentsOfFile:@"/Users/xyf/Desktop/a.png"];

    [data appendData:imageData];

    [data appendData:KnewLine];

    //02 拼接非文件参数

    /*

    --分隔符

    Content-Disposition: form-data; name="username"

    空行

    abcdf

    */

    [data appendData:[[NSString stringWithFormat:@"--%@",Kboundary] dataUsingEncoding:NSUTF8StringEncoding]];

    [data appendData:KnewLine];

    //name:username

    [data appendData:[@"Content-Disposition: form-data; name=\"username\"" dataUsingEncoding:NSUTF8StringEncoding]];

    [data appendData:KnewLine];

    [data appendData:KnewLine];

    [data appendData:[@"abcdef" dataUsingEncoding:NSUTF8StringEncoding]];

    [data appendData:KnewLine];

    //03 结尾标识

    /*

    --分隔符--

    */

    [data appendData:[[NSString stringWithFormat:@"--%@--",Kboundary] dataUsingEncoding:NSUTF8StringEncoding]];

    return data;

    }

    相关文章

      网友评论

          本文标题:iOS原生网络请求框架之NSURLSessionUploadTa

          本文链接:https://www.haomeiwen.com/subject/frelpttx.html