Download an image using AFNetworking 2.0

I am trying to add a photo to POST using AFNetworking 2.0. This ios app posts a blog post. I can not understand why the images do not load.

Here is what I got so far:

// publish text and image -(void)publishTextAndImage:(NSString*)resultDisplay and:(NSString*)subject with:(NSString*)nonce { imageData = UIImageJPEGRepresentation(selectedImage, 0.7); // create a data object from selected image NSString *myUUID = [[NSUUID UUID] UUIDString]; // create a UUID NSString *formatString = [NSString stringWithFormat:@"<img src=\"/wp-content/uploads/%@\"/>",myUUID]; NSString *contentString = [formatString stringByAppendingString:resultDisplay]; NSString *moodString = [NSString stringWithFormat:@"%d",self.moodNumber]; NSDictionary *parameters = @{@"title":subject, @"content":contentString, @"status":@"publish", @"author":@"wordpress", @"user_password":@"xrayyankee", @"nonce":nonce, @"categories":moodString, @"attachment":@"image/jpeg"}; AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; [manager POST:@"http://thrills.it/?json=posts/create_post" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { if (selectedImage) { [formData appendPartWithFileData:imageData name:@"photo" fileName:myUUID mimeType:@"image/jpeg"]; } } success:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"JSON: %@", responseObject); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Error: %@", error); }]; 

}

Thanks a bunch

+7
ios objective-c afnetworking-2
source share
2 answers

I realized the code was right, it was a problem with the name of the parameters, here it is:

 // publish text and image -(void)publishTextAndImage:(NSString*)resultDisplay and:(NSString*)subject with: (NSString*)nonce { imageData = UIImageJPEGRepresentation(selectedImage, 0.7); // create a data object from selected image NSString *myUUID = [[NSUUID UUID] UUIDString]; // create a UUID NSString *formatString = [NSString stringWithFormat:@"<img src=\"/wp- content/uploads/%@\"/>",myUUID]; NSString *contentString = [formatString stringByAppendingString:resultDisplay]; NSString *moodString = [NSString stringWithFormat:@"%d",self.moodNumber]; NSDictionary *parameters = @{@"title":subject, @"content":contentString, @"status":@"publish", @"author":@"wordpress", @"user_password":@"xrayyankee", @"nonce":nonce, @"categories":moodString}; AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; [manager POST:@"http://thrills.it/?json=posts/create_post" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { if (selectedImage) { [formData appendPartWithFileData:imageData name:@"attachment" fileName:myUUID mimeType:@"image/jpeg"]; } } success:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"JSON: %@", responseObject); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Error: %@", error); }]; 

so basically I removed the "attachment" parameter from the parameter dictionary and changed the name of the added imageData to @ "attachment". it was a wordpress json api problem that was very picky (:

+1
source share

I use AFNetworking this way:

 AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:@"http://thrills.it/?json=posts"]]; NSURLRequest *request = [client multipartFormRequestWithMethod:@"POST" path:@"create_post" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { if (selectedImage) { [formData appendPartWithFileData:imageData name:@"photo" fileName:myUUID mimeType:@"image/jpeg"]; } } ]; AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) { NSLog(@"JSON: %@", responseObject); } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) { NSLog(@"Error: %@", error); }]; [operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) { float progressValue = (float)((double)totalBytesWritten/(double)totalBytesExpectedToWrite); NSLog(@"%f", progressValue); }]; [self.queue addOperation:operation]; 

.

 @property (nonatomic, strong) NSOperationQueue *queue; 

My client is created earlier, but it is created this way.

I hope this helps.

+4
source share

All Articles