Convert NSURLConnection to NSURLSessionUploadTask example

Hallo allerseits und vielen Dank im Voraus für jede Hilfe, die zum Verständnis der Konvertierung von NSURLConnection-Code in die neuere NSURLSession beiträgt. Ich versuche, eine POST-Anfrage an einen Server zu senden und eine Fotobasis 64 zu senden, die für den Schlüssel "photo" codiert ist.

Below Ich habe ein funktionierendes Beispiel in NSURLConnection geschrieben und möchte es in NSURLSession konvertieren.

Wie ich in der Apple-Dokumentation gelesen habe, sollte ich eine Datenaufgabe verwenden, da es sich in meinem Fall um ein Bild handelt. Wenn es sich um eine größere Übertragung wie ein Video handelt, sollte ich die Upload-Aufgabe verwenden.

Bezüglich der Upload-Aufgabe habe ich die nächste gefundenLernprogram aber das problem ist, dass ich in meinem fall auch einen header setze und auch mein inhaltstyp multipart / formulardaten sein soll.

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"];

                               }


                           }];

Ich möchte erwähnen, dass ich versucht habe, mithilfe des Ray Wenderlich-Tutorials ein funktionierendes Beispiel zu erstellen, aber ich habe eine Fehlermeldung bezüglich der Art und Weise erhalten, wie ich meine Header gesetzt habe.

Vielen Dank im Voraus für die geleistete Hilfe!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage