通过AFNetworking 2.0上传iOS图像

ord*_*n09 6 afnetworking afnetworking-2

我一直在寻找新的AFNetworking 2.0上传图像的例子.但是我正在撞墙,无法弄清楚代码有什么问题.所以这是我使用的代码

NSData *imageData = UIImageJPEGRepresentation(image, 0.5);
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];


AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];

NSURL *URL = [NSURL URLWithString:@"http://myserverurl.com"];

NSURLRequest *request = [NSURLRequest requestWithURL:URL]; 

NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithRequest:request fromData:imageData progress:nil completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
    if (error) {
        NSLog(@"Error: %@", error);
    } else {
        NSLog(@"Success: %@ %@", response, responseObject);
    }
}];
[uploadTask resume];
Run Code Online (Sandbox Code Playgroud)

TIA

ord*_*n09 34

我最终使用了多部分请求

UIImage *image = [info valueForKey:UIImagePickerControllerOriginalImage];
NSData *imageData = UIImageJPEGRepresentation(image, 0.5);
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *parameters = @{@"foo": @"bar"};
[manager POST:@"http://example.com/resources.json" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    [formData appendPartWithFormData:imageData name:@"image"];
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"Success: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];
Run Code Online (Sandbox Code Playgroud)

  • 如果你之后没有使用它,为什么还要烦恼fileURl? (4认同)
  • `appendPartWithFileData:imageData name:@"image"错误:nil]`我不再工作了.您应该使用:`[formData appendPartWithFormData:imageData name:@"image"];`...但它仍然不适用于我:/ (3认同)
  • @raistlin`adpendPartWithFileData`也为我工作.请参阅http://stackoverflow.com/a/20190352/1933185 (2认同)
  • @raistlin我认为你的意思是"filePath",这里似乎没有使用它. (2认同)