서버에 POST 요청을 통해 avaudiorecorder를 보내려고합니다. 하지만 해결할 수없는 몇 가지 이유로 업로드하지 않습니다. 먼저 내가 보내려는 파일의 경로를 가져 와서 필요한 모든 헤더가있는 Post 요청 메소드를 만듭니다. 서버 응답은 파일 업로드가 없으므로 파일의 경로에 문제가있는 것 같지만 해결책을 얻지는 못합니다. 권한 부여 내용과 함께 POST 요청, 다중 파트 양식 데이터 및 경계가있는 content-type 및 "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;
}
// POST 요청 방법
-(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