Я пытаюсь отправить avaudiorecorder через запрос POST на сервер. Но это не загрузка по какой-то причине, я не могу решить. Сначала я беру путь к файлу, который я хочу отправить, а затем создаю метод запроса на отправку со всеми необходимыми заголовками. Ответ сервера - нет загрузки файла, поэтому я предполагаю, что я делаю что-то не так с файлом пути, но я не получаю решение. Мне нужно отправить запрос POST с содержимым авторизации, как он показывает, тип контента с помощью multipart form-data и границей, а также файл, который загружается как «uri_file» и файл. {uri_file: файл} я пытаюсь отправить его, но сервер отвечает - NotEnoughData = "Вы должны указать файл", -AVaudioRecorder Запрос на отправку iOS не отправлен
...........
-(NSData *)sendTrack{
NSMutableDictionary *dictrvo = [NSMutableDictionary dictionaryWithObjectsAndKeys: audioRecorder.url,@"uri_file", nil ];
NSUserDefaults *prefs= [NSUserDefaults standardUserDefaults];
// get the audio data from main bundle directly into NSData object
NSURL *filePath = [prefs objectForKey:@"Revo1"];
if (filePath == nil) {
NSLog(@"vacio1");
}
NSData *result =[NSKeyedArchiver archivedDataWithRootObject:dictrvo];
NSData *archivo = [[NSData alloc] initWithContentsOfFile:filePath];
if (result == nil) {
NSLog(@"vacio");
}
NSData *response= [self createTrackPostRequest:archivo];
NSDictionary *dictionaryResponse = [self getDataFromJson:response];
return nil;
}
// Сообщение запроса Метод
-(NSData *)createTrackPostRequest:(NSData *)requestData{
NSString *strData = [[NSString alloc]initWithData:requestData encoding:NSUTF8StringEncoding];
// Print out new string
NSLog(@"DATA: %@",strData);
//URL
NSURL *URL = kRevoTrack;
if(URL == nil)
NSLog(@"estoy vacio");
//REQUEST
NSString *username;
NSString *api_key;
NSMutableURLRequest *request= [NSMutableURLRequest requestWithURL:URL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60];
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
username = [prefs objectForKey:@"userName"];
api_key = [prefs objectForKey:@"api_key"];
NSString * authorizationcontent = [@"ApiKey " stringByAppendingString:[username stringByAppendingString:[@":" stringByAppendingString:api_key]]];
[request setHTTPMethod:@"POST"];
[request setValue:authorizationcontent forHTTPHeaderField:@"Authorization"];
[request setValue:@"multipart/form-data ; boundary = ---------1239821390213hdjfhsakdasjl123ad" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"form-data; name =\"uri_file\"; file =\"MyAudioMemo.m4a\"\r\n" forHTTPHeaderField:@"Content-Disposition"];
dataUsingEncoding:NSUTF8StringEncoding]];
[request setValue: [NSString stringWithFormat: @"%d", [requestData length]] forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:requestData];
NSURLResponse *response = nil;
NSError *error = nil;
NSData *result = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
if(error == nil){
// REQUEST SENT WITHOUT ERROR
return result;
}else{
//ERROR SENDING THE REQUEST
NSLog(@"ERROR");
}
return nil;
}
Может ли кто-нибудь помочь мне? Большое спасибо!
Большое вам спасибо за помощь! Это сводило меня с ума! Мне не приходило в голову сначала размещать его на HTML, чтобы увидеть, что нужно. – Adrideh