Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How send NSData using POST from a iOS application?

Tags:

post

ios

nsdata

NSData *imageData = UIImagePNGRepresentation(image);

How send imageData using POST?

like image 769
abg Avatar asked May 25 '12 10:05

abg


3 Answers

The following code should help

NSData *imageData = UIImagePNGRepresentation(image);

NSURL *yourURL = ...
NSMutableURLRequest *yourRequest = [NSMutableURLRequest requestWithURL:yourURL 
                                                           cachePolicy:NSURLRequestUseProtocolCachePolicy 
                                                       timeoutInterval:60.0];
//Set request to post
[yourRequest setHTTPMethod:@"POST"];

//Set content type 
[yourRequest setValue:@"image/png" forHTTPHeaderField:@"Content-Type"];

// Set authorization header if required
...

// set data
[yourRequest setHTTPBody:imageData];


// create connection and set delegate if needed
NSURLConnection *yourConnection = [[NSURLConnection alloc] initWithRequest:yourRequest 
                                                                  delegate:self
                                                          startImmediately:YES];

Please note that, it is assumed that you are using ARC.

like image 151
Mert Avatar answered Oct 22 '22 14:10

Mert


You can check this answer, if you are okay with using NSURLConnection https://stackoverflow.com/a/10750428/591951

This post explains how to POST an Audio file, but you can upload any file using the same method

like image 22
Krrish Avatar answered Oct 22 '22 13:10

Krrish


You can use ASIHTTPRequest library: http://allseeing-i.com/ASIHTTPRequest/

Then it's pretty easy:

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

// Upload an NSData instance
[request setData:imageData withFileName:@"myphoto.jpg" andContentType:@"image/jpeg" forKey:@"photo"];

Info on how to use: http://allseeing-i.com/ASIHTTPRequest/How-to-use

like image 33
Michal Dymel Avatar answered Oct 22 '22 14:10

Michal Dymel