C# C中Windows应用商店应用的LiveConnectClient.BackgroundUploadAsync的替代方案#

C# C中Windows应用商店应用的LiveConnectClient.BackgroundUploadAsync的替代方案#,c#,onedrive,C#,Onedrive,无法理解这一点,但我相信这是由于文本与二进制文件。 如何使用LiveConnectClient.PutAsync上载二进制文件? LiveConnectClient.PutAsync(string,string)可以很好地用于文本文件,但当我尝试上载.zip文件时,它会损坏。 在文件内容传递到PutAsync(如编码等)时需要做什么 我不希望使用BackgroundUploadAsync,因为它将创建一个虚拟的后台任务,可以在Visual Studio中看到。在反复阅读API文档后发现,因为我不

无法理解这一点,但我相信这是由于文本与二进制文件。 如何使用LiveConnectClient.PutAsync上载二进制文件? LiveConnectClient.PutAsync(string,string)可以很好地用于文本文件,但当我尝试上载.zip文件时,它会损坏。 在文件内容传递到PutAsync(如编码等)时需要做什么


我不希望使用BackgroundUploadAsync,因为它将创建一个虚拟的后台任务,可以在Visual Studio中看到。

在反复阅读API文档后发现,因为我不熟悉HTML Post/Put/Get。 下面的代码片段,以防有人想要类似的东西

LiveConnectClient connectClient = new LiveConnectClient(this.Session);
Uri uri = new Uri("https://apis.live.net/v5.0/" + FolderID + "/files/" + Filename + "?access_token=" + connectClient.Session.AccessToken, UriKind.Absolute);
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Put, uri);
request.Content = new HttpStreamContent(await InputFile.OpenAsync(FileAccessMode.Read));
HttpResponseMessage response = await httpClient.SendRequestAsync(request, HttpCompletionOption.ResponseHeadersRead);

if (response.StatusCode == HttpStatusCode.Created || response.StatusCode == HttpStatusCode.Ok)
{...}