Estoy tratando de agregar una image en mi file JSON que quiero publicar en el server. Estoy usando el siguiente código, pero sigo recibiendo un Invalid type in JSON write (NSConcreteMutableData)
error de Invalid type in JSON write (NSConcreteMutableData)
. El codigo es
NSDictionary *parameter = [[NSDictionary alloc]init]; NSData *imageData = UIImagePNGRepresentation(imageView.image); parameter = @{@"body":@"Hi",@"image":imageData};
Además, estoy usando AFNetworking
para publicar la image en el server
No estoy seguro de lo que está mal en el código. Cualquier ayuda sería muy apreciada
Si alguien más tiene el mismo problema más tarde. este es el código que debes usar
NSURL *url = [NSURL URLWithString:@"http://api-base-url.com"]; AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url]; NSData *imageData = UIImageJPEGRepresentation([UIImage imageNamed:@"avatar.jpg"], 0.5); NSDictionary *parameter = @{@"body":@"image"}; NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:@"/upload" parameters:parameter constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) { [formData appendPartWithFileData:imageData name:@"avatar" fileName:@"avatar.jpg" mimeType:@"image/jpeg"]; }]; AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; [operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) { NSLog(@"Sent %lld of %lld bytes", totalBytesWritten, totalBytesExpectedToWrite); }]; [httpClient enqueueHTTPRequestOperation:operation];
Fuente: enlace
testing así,
parameter = @{@"body":@"Hi",@"image":[NSString stringWithFormat:@"%@" ,imageData]};