我試圖將一些avi文件上傳到服務器。它與HttpRequest正常工作,但我需要繼續上傳,即使我暫停應用程序,所以這就是爲什麼我想使用BackgroundUploader。我遵循MSDN http://msdn.microsoft.com/en-us/library/windows/apps/jj152727.aspx上的這個指導原則。所以我的代碼看起來像這樣。BackgroundUploader中的異常
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提出的請求,它們是相等的,那就是我想要的。
錯誤來自您的服務器。我會建議使用[Fiddler](http://fiddler2.com/home)來分析請求和響應。我的猜測是你沒有遵循multipart/form-data標準。看維基百科的例子:http://en.wikipedia.org/wiki/MIME#Multipart_messages。 – kiewic
感謝您的回覆。你是對的,我應該考慮自己使用Fiddler。無論如何,我試了一下,發現我的第一個想法,但無法找到適當的解決方案,我的內容類型的定義是錯誤的。所以現在我正在使用「multipart/related; type = \」application/xop + xml \「」,這是在Fiddler調試時提出的。但是現在我得到了(400)錯誤的請求異常,很不幸,我沒有得到任何額外的信息。所以我不知道會導致什麼。 –