我正在尝试将一些 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 中遇到异常 Unsupported media type (415)
await upload.StartAsync().AsTask(cts.Token, progressCallback);
我究竟做错了什么?或者什么会导致这种异常?
编辑:当我在这里和我的回答中评论时,我解决了我的问题。我认为最后我基本上只是将一些数据发送到服务器,这些数据被识别和解释为我想要的。因此,如果我使用 BackgroundUploader,我不仅会上传一些文件,还会发送有关我如何做到这一点的信息(正如我在回答中提到的那样)。因此,通过同样的想法,我也可以将文件夹上传到服务器,并且我不会发送任何实际内容,只是关于如何执行此操作的一些描述。如果我比较我通过 HttpRequest 和 BackgroundUploader 发出的请求,它们是相等的,这就是我想要的。