Отправлять изображения на сервер с помощью NSURLSession

Привет, я очень новичок в ios, и я пытаюсь отправить некоторые параметры на сервер, используя NSURLSession (они USERname, USERtype, USERimage), но на основе моего ниже кода изображение не идет на сервер и как отправлять изображения на сервер, пожалуйста, помогите мне где я сделал это неправильно?

мой код: –

NSError *error; NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:nil]; NSURL *url = [NSURL URLWithString:@"[JSON SERVER"]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; [request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; [request addValue:@"application/json" forHTTPHeaderField:@"Accept"]; [request setHTTPMethod:@"POST"]; UIImage *myImage = [UIImage imageNamed:@"myImage.png"]; NSString *myImage = [UIImagePNGRepresentation(myImage) base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength]; NSDictionary *mapData = [[NSDictionary alloc] initWithObjectsAndKeys: @"TEST IOS", @"name", @"IOS TYPE", @"typemap", myImage,@"image" nil]; NSData *postData = [NSJSONSerialization dataWithJSONObject:mapData options:0 error:&error]; [request setHTTPBody:postData]; NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { }]; [postDataTask resume]; 

Попробуйте использовать

 UIImage *myImage = [UIImage imageNamed:@"myImage.png"]; NSString *base64Image = [UIImagePNGRepresentation(myImage) base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength]; 

Вы можете использовать библиотеку AFNetworking для загрузки изображений. Это более эффективно.

 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html", @"application/json", nil]; [manager.requestSerializer setValue:[CommonFunctions hmac:sStr withKey:[[NSUserDefaults standardUserDefaults] objectForKey:KEY_ACCESS_TOKEN]] forHTTPHeaderField:@"Signature"]; manager.responseSerializer = [AFJSONResponseSerializer serializer]; [manager POST:[NSString stringWithFormat:@"%@%@",kBaseURL,theFileName] parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { if (finalImageData) { [formData appendPartWithFileData:finalImageData name:@"photo" fileName:@"pic.jpg" mimeType:@"image/jpeg" ]; } } success:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"JSON: %@", responseObject); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { } 
  • Почему NSURLSession dataTaskWithURL значительно медленнее vs NSData dataWithContentsOfURL?
  • Когда выполняется NSURLSession?
  • (kCFStreamErrorDomainSSL, -9814)
  • Как получить ответ от NSURLSessionDownloadTask downloadTaskWithRequest
  • Что произойдет, если пространство на диске закончится при использовании NSURLSessionDownloadTask в фоновом режиме?
  • Вызов AFHTTPSessionManager.downloadTasks в AFNetworking 2 замораживает основной поток
  • NSURLSession didCompleteWithError: вызывается с NSError, ноль
  • Почему NSURLSession медленнее, чем cURL при загрузке многих файлов?
  • Создайте свой собственный код ошибки в swift 3
  • NSURLSession с NSBlockOperation и очередями
  • Темы NSURLSession: отслеживание загрузки нескольких фонограмм
  • Давайте будем гением компьютера.