iOS之网络请求之AFN表单上传之form-data

表单上传呢一般是当要上传图片的时候用的网络请求方式。上传http post请求的表单格式是这样的
Content-type: multipart/form-data, boundary=qwerdf  
  
--<span style="font-family: Arial, Helvetica, sans-serif;">qwerdf</span>
  
content-disposition: form-data; name="field1"  
  
i will upload head!  
--<span style="font-family: Arial, Helvetica, sans-serif;">qwerdf</span>
  
content-disposition: form-data; name="pic"; filename="head.png"  
Content-Type: image/png  
  
... contents of boris.png ...  
--<span style="font-family: Arial, Helvetica, sans-serif;">qwerdf</span>-- 


格式是固定的,错了不会上传成功的,而且注意的是图片上传的时候name 和filename 都是有双引号的 而Content-Type 是没有双引号的 而且结尾要以  --   表示表单结束

我们今天要讲的是AFNetworking表单上传,AFN呢帮我们吧表单的格式都封装好了,可以省掉很多的麻烦,灰常的好用,下面我们说说AFN怎么上传图片

首先。。。。。。。。引入头文件啦

第一步 创建AFN管理者,设置一些属性

    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    manager.requestSerializer.timeoutInterval = 20;
    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/plain", @"multipart/form-data", @"application/json", @"text/html", @"image/jpeg", @"image/png", @"application/octet-stream", @"text/json", nil];
     第二步 调用AFN的上传图片的方法
</pre><pre name="code" class="objc">[manager POST:url parameters:newLowKeyDic constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
        
//利用for循环上传多张图片
        int i = 1;
        for (UIImage * image in self.photoselectVC.images) {
//把图片转换为二进制流
            NSData *imageData = UIImagePNGRepresentation(image);
//按照表单格式把二进制文件写入formData表单
            [formData appendPartWithFileData:imageData name:@"upLoad" fileName:[NSString stringWithFormat:@"%d.png", i] mimeType:@"image/png"];
            
            i++;
            
        }
        
    } success:^(NSURLSessionDataTask *task, id responseObject) {
        NSLog(@"发送成功");
       
        NSLog(@"responseObject == %@", responseObject);
        
        
    } failure:^(NSURLSessionDataTask *task, NSError *error) {
       
        NSLog(@"发送失败");
    }];



是不是很简单呢,这种方法很大众化,毕竟自己写的比较麻烦的,而且表单的格式是非常严格的 每个换行都是不能被忽略的,所以我还是建议一些新手们用AFN进行上传图片啊 等等,当然如果你们感觉AFN的一些功能不能满足你们,可以自己创建表单上传喽。






每周一段

“人们常说左眼跳财右眼跳灾。那我两眼一起跳是什么意思?“,”说明你的人身意外险快起作用了“。







评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值