Я знаю, что это может показаться специфичным для данной проблемы, однако это я стараюсь избегать ужасного использования какао-контейнеров в UploadCare, которое содержит значительное (и довольно устаревшее) количество зависимостей, чтобы просто загрузить файл (а затем загрузить его позднее).cURL upload photo command в формате NSMutableURLRequest
Я изо всех сил пытаюсь перевести опции '-F' в команду cURL. Я понимаю, что они указывают HTTP multipart POST-данные, но преобразование этого в NSMutableData с прикрепленным файлом изображения затруднено. Я продолжаю получать код состояния 403.
локонов команда:
curl -F "UPLOADCARE_PUB_KEY=e84a031b3da1g560d56d" \
-F "UPLOADCARE_STORE=1" \
-F "[email protected]" https://upload.uploadcare.com/base/
Моя текущая попытка:
NSMutableData *body = [NSMutableData data];
NSData *imageData = UIImageJPEGRepresentation(image, 0.6);
if (imageData) {
[body appendData:[@"UPLOADCARE_PUB_KEY=e84a031b3da1g560d56d" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"UPLOADCARE_STORE=1" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"file="] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:imageData];
}
NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfiguration delegate:self delegateQueue:nil];
NSURL *url = [NSURL URLWithString:baseUrl];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
request.HTTPMethod = @"POST";
request.HTTPBody = imageData;
NSURLSessionDataTask *uploadTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSLog(@"%@",response);
}];
[uploadTask resume];
Что я делаю неправильно с NSMutableData?
Второй вопрос и связанный с ним вопрос: стоит ли использовать обертку объектива-C lib?
Вы реализации (Недействительными) URLSession: (NSURLSession *) сессии didReceiveChallenge: метод? 403 может быть связано с этим. – Xcoder
Как и в, я не должен называть этот метод делегата? Единственный код, который я запускал, - это то, что я разместил здесь (я думаю, что в вызове делегата не было необходимости ссылаться на я): я не совсем уверен, что я должен делать с этим методом делегирования, так или иначе, кажется, что-то делают, когда я только что добавил его сейчас. – Rambatino