AFNetworking upload data too long

66 Views Asked by At

I'm using AFNetworking 3.0 and I try to send files to my server, my code work perfectly but it's very long to send the file especially when I try to send a video.

I compress the video quality and it's a little bit fast but to send a 5 sec video that take 15-20 sec.

I want to know if it's possible to improve the speed to send the file.

There is my code :

    NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:@"urlOfServer" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
     [formData appendPartWithFileData:videoData name:@"fileName" fileName:@"filename.mp4" mimeType:@"video/mp4"];
        } error:nil];

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

        NSURLSessionUploadTask *uploadTask;
        uploadTask = [manager
      uploadTaskWithStreamedRequest:request
      progress:^(NSProgress * _Nonnull uploadProgress) {

          dispatch_async(dispatch_get_main_queue(), ^{
              //Update the progress view
              NSLog(@"PERCENTAGE UPLOADED %f",uploadProgress.fractionCompleted);

          });
      }
      completionHandler:^(NSURLResponse * _Nonnull response, id  _Nullable responseObject, NSError * _Nullable error) {
          if (error) {
              NSLog(@"Error: %@", error);
          } else {
              NSLog(@"%@ %@", response, responseObject);
          }
      }];

    [uploadTask resume];

Thank for your help

1

There are 1 best solutions below

1
Arik Segal On

Since you only write to the debug console to report the progress and you don't change any UI elements, the dispatch_get_main_queue is not needed. Try to remove it and see if it makes a difference in performance.