使用AFNetworking上传音频文件

时间:2014-09-15 20:10:28

标签: ios http file-upload afnetworking

我尝试使用AFNetworking库将文件上传到Clypit。我在这里查看了他们的文档:https://github.com/AFNetworking/AFNetworking

并已配置我的代码上传音频文件,如下所示:

        NSIndexPath *cellIndexPath = [self.tableView indexPathForCell:cell];
        UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:cellIndexPath];
        ICIRecordingCell *c = (ICIRecordingCell *)cell;
        NSString *fileName = c.title.text;

        NSURL *filePath = [NSURL fileURLWithPath:fileName];

        NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:@"http://upload.clyp.it/upload"
            parameters:nil
             constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
                 [formData appendPartWithFileURL:filePath name:@"audioFile" fileName:@"audio.m4a" mimeType:@"audio/m4a" error:nil];
             } error:nil];

        AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];

        NSProgress *progress = nil;
        NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithStreamedRequest:request progress:&progress completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
            if (error) {
                NSLog(@"Error: %@", error);
            } else {
                NSLog(@"%@ %@", response, responseObject);
            }
        } ];
        [uploadTask resume];

但是响应对象或错误都没有被触发。我甚至不确定这是否是我应该发送的请求类型。 Clypit Api说他们接受如下请求:

  

上传音频文件。接受的文件类型是mp3,ogg,m4a,wav,   aiff,aif和3gpp。无论上传时的文件类型如何,a   生成的mp3和ogg将被创建并可用。音频   通过提供播放列表和文件,可以将文件添加到播放列表中   playlistUploadToken。否则,将自动添加新的播放列表   创建。播放列表最多可包含20个音频文件。标题   音频文件的设置将设置为已上载的名称   文件。

     

参数:audioFile - 音频文件的二进制文件。 playlistId -   可选的。音频文件将添加到的播放列表。如果这   指定了值,正确的playlistUploadToken也必须是   包含在请求中。如果未指定此值,则为播放列表   将自动创建。 playlistUploadToken - 可选。特定   创建播放列表后给你。将音频文件添加到   已存在的播放列表,必须提供此值。订单 -   可选的。您希望此音频文件所在的位置   出现在播放列表中。 description - 可选。的描述   音频文件。允许的最大长度为420个字符。经度 -   可选的。录制音频文件的位置的经度。如果   传入,纬度变得必要。值必须介于-15069和之间   15069度。纬度 - 可选。音频的纬度   文件被记录下来。如果传入,则需要经度。值   必须在-90到90度之间。

     

上传是通过multipart / form-data POST完成的。考虑一下   以下表格:                  

     

它将创建一个如下所示的请求:POST   http://upload.clyp.it/upload HTTP / 1.1主机:upload.clyp.it   连接:keep-alive内容类型:multipart / form-data;   boundary = --------------------------- 21632794128452内容长度:   5005   ----------------------------- 21632794128452 Content-Disposition:form-data;名称=&#34; AUDIOFILE&#34 ;;文件名=&#34; MyAudioFile.mp3&#34;内容类型:   audio / mpeg(音频文件数据在这里)

我使用正确的方法吗?提前致谢

0 个答案:

没有答案