Iphone 我做的对不对?当我在NSData中将音频文件发送到服务器时

Iphone 我做的对不对?当我在NSData中将音频文件发送到服务器时,iphone,ios,objective-c,avaudioplayer,audio-recording,Iphone,Ios,Objective C,Avaudioplayer,Audio Recording,我正在以.wav格式录制音频,并将.wav1文件转换为NSData并发送到服务器 记录路径为: file://localhost/var/mobile/Applications/8F81BA4C-7C6F-4496-BDA7-30C45478D758/Documents/sound.wav 我正在使用以下命令发送到服务器: audioURL=@"file://localhost/var/mobile/Applications/8F81BA4C-7C6F-4496-BDA7-30C45478D75

我正在以
.wav
格式录制音频,并将
.wav1
文件转换为
NSData
并发送到服务器

记录路径为:

file://localhost/var/mobile/Applications/8F81BA4C-7C6F-4496-BDA7-30C45478D758/Documents/sound.wav

我正在使用以下命令发送到服务器:

audioURL=@"file://localhost/var/mobile/Applications/8F81BA4C-7C6F-4496-BDA7-30C45478D758/Documents/sound.wav";


NSURL *url=[NSURL URLWithString:urlString];
 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: url];
    [request setHTTPMethod: @"POST"];
    [request setValue: @"multipart/form-data" forHTTPHeaderField: @"Content-Type"];
NSData *audiodata = [NSData dataWithContentsOfURL:audioURL];
NSMutableData *highScoreData = [NSMutableData data];
[highScoreData appendData:audiodata];
[request setHTTPBody:highScoreData];
 nsurlConnection = [[NSURLConnection alloc] initWithRequest: request
                                                  delegate: self];
当我回放时,它会给我正确的录音。但是,当我播放来自服务器的同一录制语音时,它会显示“Quotence”,而不是实际录制的语音

我的完整代码,我如何做录音和我如何发送音频


请告诉我我这样做(即发送到服务器)的方式是否正确?

如果您想通过多部分/表单数据发送数据,请使用
ASIFormDataRequest
。查找文档以获取更多参考。

多部分请求不是这样工作的。不同数据之间需要有不同的边界。请检查:

对于解决方案,我使用AFNetworking()。 AFHTTPClient可以为您创建多部分请求。
检查::

这是我用来上传的代码。标题部分取决于服务器如何处理此问题。 AsiFormdata在这里更合适

NSString*fileString

fileString = [[self documentsPath]
              stringByAppendingPathComponent:@"testcombine.m4a"];

NSData* songData=[NSData dataWithContentsOfFile:fileString];



NSURL *url = [[NSURL alloc] initWithString:[NSString stringWithFormat:@"http://%@/UsingWebServer2/UploadServlet",RemoteEndpoint]];

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

 [request setData:songData withFileName:@"upload_test.m4a" andContentType:@"audio/m4a" forKey:@"file"];

//[request appendPostData:[Jstring  dataUsingEncoding:NSUTF8StringEncoding]]; 
[request startSynchronous];

是否确实要以“多部分/表单数据”而不是音频文件格式类型发送数据?这可能会影响接收系统对其的解释。我必须以字节形式发送。。。。那么现在,什么是正确的位置??这个“多部分/表单数据”足够了吗?或者我们需要放置其他数据吗@在实际的多部分表单中,您必须创建符合多部分的数据,这意味着创建子部分,正确命名它们,并放入分隔符。有关示例,请参见@Nikhil的答案。