AFNetworking实现上传

- (IBAction)startUploadTask:(id)sender {

    //网络地址
    NSString *urlString = @"https://api.weibo.com/2/statuses/upload.json";
    //创建access_token
    NSString *token = @"2.00hd363CtKpsnBedca9b3f35tBYiPD";
    //获取输入的文字和图片
    UIImage *image = _imageView.image;
    NSString *text = _textField.text;

    if (image == nil || text.length == 0) {
        return;
    }
    //构造参数字典
    NSDictionary *dic = @{@"access_token" : token,
                          @"status" : text};

    //创建序列化对象
    AFHTTPRequestSerializer *serializer = [AFHTTPRequestSerializer serializer];
    //创建请求对象
    NSMutableURLRequest *request = [serializer multipartFormRequestWithMethod:@"POST" URLString:urlString parameters:dic constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {

        //图片数据的拼接
        NSData *imageData = UIImageJPEGRepresentation(image, 1);
        [formData appendPartWithFileData:imageData name:@"pic" fileName:@"image.png" mimeType:@"image/png"];

    } error:nil];

    //创建manager
    AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];

    //创建上传任务
    NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithStreamedRequest:request progress:^(NSProgress * _Nonnull uploadProgress) {

        //回到主线程中 刷新界面
        dispatch_async(dispatch_get_main_queue(), ^{
            //Update the progress view
            [_progressView setProgress:uploadProgress.fractionCompleted];
        });

    } completionHandler:^(NSURLResponse * _Nonnull response, id  _Nullable responseObject, NSError * _Nullable error) {

        NSLog(@"状态码:%li", ((NSHTTPURLResponse *)response).statusCode);
        if (error) {
            NSLog(@"上传失败");
        }else {
            NSLog(@"上传成功");
        }
    }];

    [uploadTask resume];

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值