视频通过iOS中的http post方法发布到服务器



请改进我编写的代码,以使用HTTP post方法将视频发布到服务器。

服务器被击中,但响应显示空,我不明白会出什么问题

 - (IBAction)choose:(id)sender {
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
    UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    picker.allowsEditing = YES;
    picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    picker.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeMovie, nil];
    [self presentViewController:picker animated:YES completion:NULL];
}

      - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

NSString *type = [info objectForKey:UIImagePickerControllerMediaType];

  if ([type isEqualToString:(NSString *)kUTTypeVideo] ||
    [type isEqualToString:(NSString *)kUTTypeMovie])
   {

    self.videoURL = [info objectForKey:UIImagePickerControllerMediaURL];
}
[picker dismissViewControllerAnimated:YES completion:NULL];
}
 - (IBAction)upload:(id)sender {
    //NSString * str = @"content";
  //    [str stringByAppendingString:self.url];
NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:@"http://mobile.supportservice.co.in/bbgapp.asmx/Stream" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    //NSString * str = [[NSBundle mainBundle] pathForResource:@"amyVideo" ofType:@"png"];
    NSLog(@"------------------>%@",self.videoURL);

    [formData appendPartWithFileURL:[NSURL fileURLWithPath:self.videoURL] name:@"file" fileName:@"myVideo.m4v" mimeType:@"mp4/m4v" error:nil];
} error:nil];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
NSURLSessionUploadTask *uploadTask;
uploadTask = [manager
              uploadTaskWithStreamedRequest:request
              progress:^(NSProgress * _Nonnull uploadProgress) {
                  // This is not called back on the main queue.
                  // You are responsible for dispatching to the main queue for UI updates
              dispatch_async(dispatch_get_main_queue(), ^{
                      //Update the progress view
                      [self.progressView setProgress:uploadProgress.fractionCompleted];
                  });
              }
              completionHandler:^(NSURLResponse * _Nonnull response, id  _Nullable responseObject, NSError * _Nullable error) {
                  if (error) {
                      NSLog(@"Error: %@", error);
                  } else {

  NSLog(@"----------------------> %@ %@", response, responseObject);
                  }
              }];
[uploadTask resume];
}
  @end

这是我的输出

上传

/下载视频或图像的最佳方式是使用AFNetwork框架。要上传视频,请使用以下代码。

NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" 
URLString:@"http://exampleurl.com/upload" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
 [formData appendPartWithFileData:videoData name:@"file" fileName:@"filename.mov" mimeType:@"video/quicktime"];
} error:nil];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
NSURLSessionUploadTask *uploadTask;
uploadTask = [manager
              uploadTaskWithStreamedRequest:request
              progress:^(NSProgress * _Nonnull uploadProgress) {
                  // This is not called back on the main queue.
                  // You are responsible for dispatching to the main queue for UI updates
                  dispatch_async(dispatch_get_main_queue(), ^{
                      //Update the progress view
                      [progressView setProgress:uploadProgress.fractionCompleted];
                  });
              }
              completionHandler:^(NSURLResponse * _Nonnull response, id  _Nullable responseObject, NSError * _Nullable error) {
                  if (error) {
                      NSLog(@"Error: %@", error);
                  } else {
                      NSLog(@"%@ %@", response, responseObject);
                  }
              }];
[uploadTask resume];

相关内容

  • 没有找到相关文章