解决方案 »

  1.   

    只能是使用POST方式来提交了,如下是我封装的一个方法
    +(void)multipartRequestWithPath:(NSString *)path parameters:(NSDictionary *)parameters files:(NSArray *)files block:(void (^)(id json, BOOL success))completionBlock{
        NSURL *url = [NSURL URLWithString:REAL_ServerURL];
        AFHTTPClient *httpClient =[[AFHTTPClient alloc] initWithBaseURL:url];   
        NSURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:path parameters:parameters constructingBodyWithBlock: ^(id <AFMultipartFormData> formData) {
            
            for (int pos = 0; pos < files.count ; pos++) {
                SYFile *currentFile = [files objectAtIndex:pos];
                [formData appendPartWithFileData:currentFile.content name:currentFile.name fileName:currentFile.fileName mimeType:currentFile.mimeType.name];
            }
        }];
        
    #ifdef DEBUG
        NSLog(@"Request: %@", request.URL);
        NSLog(@"Parameters: %@", parameters);
        NSLog(@"Files: %@", files);
    #endif
        AFHTTPRequestOperation *operation=[[AFHTTPRequestOperation alloc] initWithRequest:request];
        [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
            NSError *error = nil;
            id jsonResult =[NSJSONSerialization JSONObjectWithData:operation.responseData options:NSJSONReadingMutableContainers error:&error];
            completionBlock(jsonResult, [status boolValue]);
        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    #ifdef DEBUG
            NSLog(@"Access server error:%@,because %@",error,operation.request);
    #endif
        }];
        NSOperationQueue *queue=[[NSOperationQueue alloc] init];
        [queue addOperation:operation];
    }
    ////////SYFile.的定义
    typedef NS_ENUM(NSUInteger, MimeType) {
        MimeTypePDF = 1,
        MimeTypeImagePNG,
        MimeTypeAudioM4A
    };
    @interface SYFile : NSObject@property (strong, nonatomic) NSData *content;
    @property (strong, nonatomic) EnumMimeType *mimeType;
    @property (strong, nonatomic) NSString *name;
    @property (strong, nonatomic) NSString *fileName;@end////////调用 
    SYFile *file;
        if (audio != nil) {
            file = [SYFile new];
            [file setName:@"audio_file"];
            [file setMimeType:[EnumMimeType mimeTypeAudioM4A]];
            [file setFileName:@"newFileAudio.m4a"];
            [file setContent:audio];
        }
    [NetworkHelper  multipartRequestWithPath:path parameters:parameters files:@[file] completionBlock:^(id json, BOOL success) {
             NSLog(@"success");
        }]
      

  2.   

    {\"voice\":\"%@\",\"playtime\":\"%d\"} 文件和长度,这是必须的