0

写真を Web サービスにアップロードしようとしていますが、次のコードを使用しています。

NSData *imageData = UIImageJPEGRepresentation([UIImage imageNamed:imageToUpload], 0.5);

// 1
NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
config.HTTPMaximumConnectionsPerHost = 1;
[config setHTTPAdditionalHeaders:@{@"Content-Type":@"multipart/form-data"}];

// 2
NSURLSession *upLoadSession = [NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:nil];

// for now just create a random file name, dropbox will handle it if we overwrite a file and create a new name..
NSString *urlString =[NSString stringWithFormat:@"https://ABC.co.uk/photos?api_key=MYAPIKEY" ];
NSURL *webUrl = [NSURL URLWithString:urlString];


NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:webUrl];
[request setHTTPMethod:@"POST"];

// 3
NSURLSessionUploadTask *uploadTask = [upLoadSession uploadTaskWithRequest:request fromData:imageData];

// 4
//    uploadView.hidden = NO;
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];

// 5
[uploadTask resume];

エラー 500 が表示され、どうすればよいかわかりません。

ThisThis、およびThisのようなボディデータの追加である AFNetworking の実装を試みました。しかし、運はありません。

上記のコードは、Ray Wenderlich の Web サイトからのものです

サーバーを提供する必要があるのはこれだけです:

  1. ファイル(画像)
  2. API キー (NSMutableURLRequest のaddValue:forHTTPHeaderField: を使用してみましたが、うまくいかなかったので、URL で使用しています。安全性の面でベスト プラクティスではないことはわかっていますが、これまでのように必死になっています。これに 10 時間以上取り組んでいます! 一歩ずつ!)
  3. あるContent-Typeべきmultipart/form-data

それが私が提供する必要があるすべてですが、それでも私はどこにも行きません!

誰でも助けてもらえますか?

前もって感謝します

更新 1: URL 構造に変更を加え、API キーを HTTPBody の辞書として追加したところ、エラー 403 が発生しました。

Apple が接続のこの部分をシリアル化する努力をしていないのは、本当に奇妙に思えます。ともかく。誰でも助けてくれて本当にありがとう!

4

1 に答える 1

0

Content-Typeリクエストにも設定してみてください:

[request addValue:@"multipart/form-data" forHTTPHeaderField:@"Content-Type"];
于 2015-11-23T20:23:37.677 に答える