일부 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에서와 동일합니다. 그리고 예외가 발생했습니다 메서드에서 지원되지 않는 미디어 유형 (415) HandleUploadAsync on line
await upload.StartAsync().AsTask(cts.Token, progressCallback);
무엇이 잘못 되었나요? 아니면 이런 종류의 예외가 발생할 수 있습니까?
편집 : 편집 : 여기 내 대답과 내 대답에 내 문제를 해결했습니다. 나는 기본적으로 단지 내가 원하는대로 인식되고 해석되는 서버에 일부 데이터를 보내는 것이라고 생각한다. 그래서 BackgroundUploader를 사용하면 일부 파일을 업로드하는 것이 아니라 내가하는 일에 대한 정보도 보내고 있습니다 (내 답변에서 언급했듯이). 그래서 같은 생각으로 나는 또한 서버에 폴더를 업로드 할 수 있습니다. 그리고 나는 그것을 수행하는 방법에 대한 실제 내용을 보내지 않을 것입니다. 그리고 내가 HttpRequest와 BackgroundUploader에 의해 작성한 요청을 비교한다면 그들은 평등하고 내가 원하는 것을 얻었습니다.
오류는 서버에서 발생합니다. [Fiddler] (http://fiddler2.com/home)를 사용하여 요청과 응답을 분석하는 것이 좋습니다. 제 추측으로는 다중 파트/폼 데이터 표준을 따르지 않는 것입니다. Wikipedia 예제를보십시오 : http://en.wikipedia.org/wiki/MIME#Multipart_messages. – kiewic
응답 해 주셔서 감사합니다. 당신 말이 맞아요. 나는 Fiddler를 혼자서 사용하는 것에 대해 생각해야합니다. 어쨌든 나는 그것을 시도하고 내가 처음 생각한 것을 발견했지만 Content-Type의 정의가 잘못되었다는 적절한 해결책을 찾을 수 없었다. 그래서 지금 나는 "multipart/related; type = \"application/xop + xml \ ""을 사용하고 있습니다. 이것은 피들러에 의해 디버깅되는 동안 제안되었습니다. 하지만 지금은 (400) 나쁜 요청 예외를 받고 있고 불행히도 나는 어떤 추가 정보도 얻지 못하고있다. 그래서 나는 이것을 일으킬 수있는 단서가 없습니다. –