Я хочу загрузить видео в веб-службу вместе с некоторыми другими параметрами. Я хочу загрузить userID, videoID и видео к веб-сервису. При загрузке все параметры, отличные от видео, отправляются на веб-службу. Я проверил в конце веб-службы, и видео не идет с запросом. Я использую следующий код.AFNetworking - Загрузите видео вместе с другими параметрами
- (void)uploadVideoAtLocalPath:(NSString *)videoPath videoID:(NSString *)videoID userID:(NSString *)userID {
NSString *strServerURL = @"www.mysite.com/user/uploadVideo";
NSURL *URL = [NSURL URLWithString:strServerURL];
AFHTTPClient *client = [AFHTTPClient clientWithBaseURL:URL];
NSMutableURLRequest *request = [client multipartFormRequestWithMethod:@"POST" path:@"" parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
// userID
NSData *userIDData = [userID dataUsingEncoding:NSUTF8StringEncoding];
[formData appendPartWithFormData:userIDData name:@"userID"];
// videoID
NSData *videoIDData = [videoID dataUsingEncoding:NSUTF8StringEncoding];
[formData appendPartWithFormData:videoIDData name:@"videoID"];
// video
NSData *videoData = [NSData dataWithContentsOfURL:[NSURL fileURLWithPath:videoPath]];
[formData appendPartWithFileData:videoData name:@"video" fileName:@"video.mov" mimeType:@"video/quicktime"];
}];
[request setURL:URL];
[request setTimeoutInterval:60.0];
[request setHTTPMethod:@"POST"];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[AFHTTPRequestOperation addAcceptableStatusCodes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(100, 500)]];
[operation setCompletionBlockWithSuccess: ^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Response String: %@", operation.responseString);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Failure: %@", error);
}];
[client enqueueHTTPRequestOperation:operation];
}
Может ли кто-нибудь сообщить мне, правильно ли я делаю это? Если нет, можете ли кто-нибудь рассказать мне, как загружать видео в веб-сервис вместе с другими параметрами?
Спасибо всем!
Вы проверили, нет ли «видеоданных»? –
Можете ли вы попытаться включить идентификатор userID и videoID в NSDictionary и поместить его внутри параметров в метод multipartFormRequestWithMethod вместо того, чтобы положить nil? –
@AttilaH: Привет, videoData не ноль. Я проверил его. Благодарю. – EmptyStack