0

我正在编写一个应用程序,该应用程序需要将 mp3 或任何其他常见音频格式的音频文件发送到服务器。我正在使用一个NSURLConnection实例来建立这种连接。我正在使用 post 方法,因为接收信息的文件是 .php。在同一个连接中,我需要发送其他主要是字符串和整数的参数。我面临的问题实际上是发送音频文件并在服务器中接收它。我正在使用下一个代码来建立我的连接:

NSMutableURLRequest *localRequest = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"whateverphpfile"]];
[localRequest setHTTPMethod:@"POST"];
[self setRequest:localRequest];
[localRequest release];

NSMutableData *body = [[NSMutableData alloc] init];

NSString *testerSTR = [NSString stringWithFormat:@"file=%@", [[NSBundle mainBundle] pathForResource:@"header" ofType:@"png"]];
[body setData:[testerSTR dataUsingEncoding:NSUTF8StringEncoding]];

//_request is of type NSMutableURLRequest
[_request setHTTPBody:body];
//[_request setValue:@"multipart/form-data" forHTTPHeaderField:@"enctype"];
[_request setValue:@"multipart/form-data" forHTTPHeaderField:@"content-type"];

NSLog(@"the body sent is: %@", [[NSString alloc] initWithData:body encoding:NSUTF8StringEncoding]);

_connection = [[NSURLConnection alloc] initWithRequest:_request delegate:self];

if (_connection)
{
    [self setWebData:[NSMutableData data]];
}
else
{
    NSLog(@"theConnection is NULL");
}

检查数据并将其返回到设备时的问题是它是一个像<564024S D451475 DS5752... ...552D4S5>. 我应该怎么做才能接收实际的音频文件,或者如何将该大字符串转换为原生 iOS 类可读的音频文件?

4

1 回答 1

0

您需要以 multipart/form-data 格式发送数据。本主题的第二个答案的代码应该做到这一点:NSURLConnection to upload file asynchonrously?

您也可以使用 ASIHTTPRequest 库,它可以做到这一点。

于 2012-06-20T03:47:01.613 回答