Prześlij obraz za pomocą AFNetworking 2.0

Nie mogę zrozumieć, dlaczego to takie trudne. Wszystkie tutoriale i artykuły online wydają się mówić o api 1.0, która jest całkiem bezużyteczna.

Wypróbowałem kilka różnych sposobów i otrzymałem różne wyniki. Co ja robię źle?

zadanie wysyłania - wydaje się, że nie używa formularza wieloczęściowego, wtf?

NSMutableURLRequest *request = [self.manager.requestSerializer multipartFormRequestWithMethod:@"POST"
                                                                                  URLString:[[NSURL URLWithString:url relativeToURL:[NSURL URLWithString:ApiBaseUrl]] absoluteString]
                                                                                 parameters:@{}
                                                                  constructingBodyWithBlock:nil];

NSProgress *progress;
NSURLSessionUploadTask *task = [self.manager uploadTaskWithRequest:request
                                                        fromData:data
                                                        progress:&progress
                                               completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
                                                 if (error) {
                                                   NSLog(@"[error description] = %@", [error description]);
                                                 } else {
                                                   NSLog(@"success!");
                                                 }
                                               }];

[task resume];

post z blokiem - wydaje się, że niczego nie dołącza

[self.manager POST:url
           parameters:@{}
constructingBodyWithBlock:^(id <AFMultipartFormData> formData) {
    [formData appendPartWithFileData:data
                                name:@"post[picture]"
                            fileName:@"picture.jpg"
                            mimeType:@"image/jpeg"];
}
              success:^(NSURLSessionDataTask *task, id response) {
                NSLog(@"Success");
              }
              failure:^(NSURLSessionDataTask *task, NSError *error) {
                NSLog(@"Error: %@", error);
              }];

prosty post - to wydaje się prawie działać ... ale nie

[self.manager POST:url
        parameters:@{@"post[picture][]":data}
           success:^(NSURLSessionDataTask *task, id response) {
             NSLog(@"Success");
           }
           failure:^(NSURLSessionDataTask *task, NSError *error) {
             NSLog(@"Error: %@", error);
           }];

Chciałbym pracować 1, ale nie wiem, dlaczego tak nie jest.

questionAnswers(2)

yourAnswerToTheQuestion