Преобразование NSURLConnection в NSURLSessionUploadTask пример

Привет всем и заранее благодарю за любую помощь, помогающую понять, как преобразовать код NSURLConnection в более новый NSURLSession. Я пытаюсь сделать POST-запрос к серверу и отправить базу фотографий 64, закодированную для ключа «фотография».

Ниже у меня есть рабочий пример, написанный на NSURLConnection, и я хотел бы преобразовать его в NSURLSession.

Как я прочитал в документации Apple, из того, что я понял, я должен использовать задачи с данными, потому что в моем случае это изображение, а если это большая передача, например видео, я должен использовать задачи загрузки.

Относительно задачи загрузки я нашел следующийруководство но проблема в том, что в моем случае я также установил заголовки, и мой тип контента должен быть multipart / form-data.

NSURL *url = [NSURL URLWithString:myLink];
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];

    [request setHTTPMethod:@"POST"];

    [request addValue:parameter1 forHTTPHeaderField:header1];
    [request addValue:parameter2 forHTTPHeaderField:header2];
    [request addValue:parameter3 forHTTPHeaderField:header3];
    [request addValue:parameter4 forHTTPHeaderField:header4];
    [request addValue:parameter5 forHTTPHeaderField:header5];

    [request setHTTPBody:[UIImageJPEGRepresentation(avatarImage, 1.0) base64EncodedDataWithOptions:NSDataBase64Encoding64CharacterLineLength]];

    [NSURLConnection sendAsynchronousRequest:request
                                       queue:[NSOperationQueue mainQueue]
                           completionHandler:^(NSURLResponse *response, NSData *data, NSError *error){

                               NSHTTPURLResponse *httpResp = (NSHTTPURLResponse*) response;

                               NSError *jsonError;

                               if(httpResp.statusCode == 200){
                                   NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data
                                                                                        options:NSJSONReadingAllowFragments
                                                                                          error:&error];


                                   if (!jsonError) {

                                       [[NSUserDefaults standardUserDefaults] setObject:[dict objectForKey:@"photo_url"] forKey:@"avatarLink"];
                                       [[NSUserDefaults standardUserDefaults] synchronize];

                                   }


                               }
                               else {

                                   NSString *errorCode = [NSString stringWithFormat:@"An error has occured while uploading the avatar: %ld", (long)httpResp.statusCode];
                                   [GeneralUse showAlertViewWithMessage:errorCode andTitle:@"Error"];

                               }


                           }];

Я хотел бы упомянуть, что я пытался создать рабочий пример с использованием учебника Рэя Вендерлиха, но у меня была ошибка, связанная с тем, как я настраивал свои заголовки.

Заранее благодарю за оказанную помощь!

Ответы на вопрос(1)

Ваш ответ на вопрос