使用AFMultipartFormData AFNetworking 3.0上传图像 [英] Image upload using AFMultipartFormData AFNetworking 3.0

查看:816
本文介绍了使用AFMultipartFormData AFNetworking 3.0上传图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

NSURL *URL = [NSURL URLWithString:@"some APi"];

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];

UIImage *myImageObj = [UIImage imageNamed:@"avatar.jpg"];
NSData *imageData= UIImagePNGRepresentation(myImageObj);

[manager POST:URL.absoluteString parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    [formData appendPartWithFileData:imageData
                                name:@"file"
                            fileName:@"avatar.jpg" mimeType:@"image/jpeg"];

    // etc.
} progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
    NSLog(@"Response: %@", responseObject);
} failure:^(NSURLSessionDataTask *task, NSError *error) {
    NSLog(@"Error: %@", error);
}];

我正在尝试使用afnetworking 3.0上传图片,但每次都会收到此错误

I am trying to upload image using afnetworking 3.0 but getting this error every time


Domain = com.alamofire.error.serialization.response代码= -1011请求
失败:内部服务器错误(500)
UserInfo = {com.alamofire.serialization.response.error.response = {URL:某些URL} {状态
代码:500,标题{
Access-Control-Allow-Origin = * ;
Content-Length = 291;
Content-Type =文本/ html;
Date =星期四,2017年1月26日11:41:19 GMT;
Server = Werkzeug / 0.11.11 Python / 2.7.12; }},

Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: internal server error (500)" UserInfo={com.alamofire.serialization.response.error.response= { URL: Some URL } { status code: 500, headers { "Access-Control-Allow-Origin" = "*"; "Content-Length" = 291; "Content-Type" = "text/html"; Date = "Thu, 26 Jan 2017 11:41:19 GMT"; Server = "Werkzeug/0.11.11 Python/2.7.12"; } },


推荐答案

幸运的是,邮递员提供了Objective-C和其他一些语言的代码,但使用了AFNetworking我用了这个

luckily postman provide objective-C and some other languages code but with AFNetworking i used this

    NSURL *URL = [NSURL URLWithString:@"your URL"];

    UIImage *myImageObj = [UIImage imageNamed:@"image.jpg"];
    NSData *imageData= UIImageJPEGRepresentation(myImageObj, 0.6);

    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    //manager.responseSerializer=[AFJSONResponseSerializer serializer];
    manager.requestSerializer = [AFHTTPRequestSerializer serializer];
    manager.responseSerializer = [AFHTTPResponseSerializer serializer];

    [manager.requestSerializer setValue:@"multipart/form-data" forHTTPHeaderField:@"Content-Type"];

    [manager POST:URL.absoluteString parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
        [formData appendPartWithFileData:imageData
                                    name:@"file"
                                fileName:@"image.jpg" mimeType:@"image/jpeg"];

        // etc.
    } progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
        NSLog(@"Response: %@", responseObject);

        NSString *string = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
        NSLog(@"%@",string);

    } failure:^(NSURLSessionDataTask *task, NSError *error) {
        NSLog(@"Error: %@", error);
    }];

这篇关于使用AFMultipartFormData AFNetworking 3.0上传图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆