サーバーにaviファイルをアップロードしようとしています。HttpRequest では正常に動作しますが、アプリを一時停止してもアップロードを続行する必要があるため、BackgroundUploader を使用しようとしています。msdn http://msdn.microsoft.com/en-us/library/windows/apps/jj152727.aspxでこのガイドラインに従っています。したがって、私のコードは次のようになります。
StorageFile storageFile = KnownFolders.VideosLibrary.GetFileAsync("fileName");
BackgroundUploader uploader = new BackgroundUploader();
uploader.Method = "POST";
uploader.SetRequestHeader("Content-Type", "multipart/form-data; boundary=" + boundary);
var fs = await storageFile.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite);
IInputStream aaaa = fs.GetInputStreamAt(0);
UploadOperation upload = uploader.CreateUploadFromStreamAsync(new Uri("uploadUri"), aaaa);
await HandleUploadAsync(upload, true);
残りは MSDN と同じです。そして、オンラインのメソッドHandleUploadAsyncでサポートされていないメディアタイプ(415)の例外が発生しています
await upload.StartAsync().AsTask(cts.Token, progressCallback);
私は何を間違っていますか?または、この種の例外の原因は何ですか?
編集:ここと私の答えにコメントしたので、問題を解決しました。最後に、基本的には、認識され、必要に応じて解釈されるデータをサーバーに送信しているだけだと思います。したがって、BackgroundUploader を使用する場合、ファイルをアップロードするだけでなく、それをどのように行っているかについての情報も送信しています (回答で述べたように)。したがって、同じ考えで、フォルダーをサーバーにアップロードすることもできます。そのため、実際のコンテンツは送信せず、その方法についての説明のみを送信します。そして、私が HttpRequest と BackgroundUploader によって行っているリクエストを比較すると、それらは等しく、それが私が望んでいたものです。