これは当面の問題に固有のもののように思えるかもしれませんが、これは、ファイルをアップロードするだけで(そしてその後ダウンロードするために)、かなりの(そしてかなり時代遅れの)依存関係を含むココアポッドの恐ろしい UploadCare の使用を回避しようとしている私です。後日)。
cURL コマンドの「-F」オプションを翻訳するのに苦労しています。HTTP マルチパート POST データを指定しているのは理解していますが、これを画像ファイルを添付した NSMutableData に変換するのは困難です。403 ステータス コードを受け取り続けます。
cURL コマンドは次のとおりです。
curl -F "UPLOADCARE_PUB_KEY=e84a031b3da1g560d56d" \
-F "UPLOADCARE_STORE=1" \
-F "file=@aaronmillman.jpg" 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 の何が間違っていますか?
2 つ目の関連する質問は、Objective-C lib curl ラッパーを使用する価値はありますか?