want to send put request with image and string data.here is my code for further reference.
+(void)uploadProfileImage:(NSData*)imageData forDeviceNumber: (NSString*)number withDelegate:(id)delegate{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[[NSUserDefaults standardUserDefaults] setObject:@"Profile Image Upload" forKey:@"WHARRU_CALLED_API"];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm:ss"];
[SharableClass addLogForAPI:@"Profile Image Upload" withtimeStamp:[dateFormatter stringFromDate:[NSDate date]] message:@"API Called." withDelegate:delegate];
[[NSUserDefaults standardUserDefaults] synchronize];
NSString *parameter = @"\{\"deviceId\" : \"919555347279\", \"name\" : \"intervention\", \"emergencyContacts\" : \"10046\", \"photo\" : \"10046\"}"; // The rest of your parmas here
////////////////////////////////////////////////////
NSString *registeredServer = [SharableClass getDataFromDBForKey:@"server"];
NSString *APIURL = @"/api/updateProfile/updateImage";
NSString *urlString = [NSString stringWithFormat:@"%@%@", registeredServer, APIURL];
NSLog(@"\n\nURL String\n%@\n\n", urlString);
NSURL *url = [NSURL URLWithString:urlString];
NSString *urlString2 = @"img/logo.png";
NSData* file = [NSData dataWithContentsOfFile: [urlString2 stringByExpandingTildeInPath]];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10.0];
[request setHTTPMethod:@"PUT"];
[request addValue:@"multipart/form-data" forHTTPHeaderField:@"Content-Type"];
NSMutableData *putData = [NSMutableData data];
[request setHTTPBody:[parameter dataUsingEncoding:NSUTF8StringEncoding]];
NSData *jsonData = [parameter dataUsingEncoding:NSUTF8StringEncoding];
[putData appendData:[NSData dataWithData:jsonData]];
[putData appendData:[NSData dataWithData:file]];
[request setHTTPBody:putData];
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error){
if([data length] >0 && error == nil){
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm:ss"];
[SharableClass addLogForAPI:@"Profile Image Upload" withtimeStamp:[dateFormatter stringFromDate:[NSDate date]] message:@"API Success." withDelegate:delegate];
__block NSError *error1;
__block NSMutableDictionary *resultsDictionary = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error1];
NSLog(@"Result Dictionary-: %@", resultsDictionary);
}else if([data length] == 0 && error == nil){
NSLog(@"There is no data.");
}else if(error != nil){
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm:ss"];
[SharableClass addLogForAPI:@"Profile Image Upload" withtimeStamp:[dateFormatter stringFromDate:[NSDate date]] message:@"API Failed." withDelegate:delegate];
NSString * response = [NSString stringWithFormat:@"Result dictionary is-: %@", error];
NSString *subStr = [SharableClass getSubsrtring:response betweenString:@"\""and:@"\""];
NSLog(@"Error-: %@", subStr);
}
}];
});
}