Converter NSURLConnection em NSURLSessionUploadTask exemplo
Olá a todos e desde já, obrigado por qualquer ajuda que permita entender como converter algum código NSURLConnection na NSURLSession mais recente. O que estou tentando fazer é fazer uma solicitação POST para um servidor e enviar uma base de fotos 64 codificada para a chave "foto".
Abaixo, tenho um exemplo de trabalho escrito em NSURLConnection e gostaria de convertê-lo em NSURLSession.
Ao ler a documentação da apple pelo que entendi, devo usar as tarefas de Dados, porque, no meu caso, é uma imagem e, se for uma transferência maior como um vídeo, devo usar as tarefas de Upload.
Em relação à tarefa de upload, encontrei a próximatutorial mas o problema é que, no meu caso, também defino cabeçalhos e também meu tipo de conteúdo deve ser 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"];
}
}];
Gostaria de mencionar que tentei criar um exemplo de trabalho usando o tutorial de Ray Wenderlich, mas estava recebendo um erro em relação à maneira como definia meus cabeçalhos
Agradecemos antecipadamente por qualquer ajuda fornecida!