在windows商店应用程序中下载和上传文件的最佳用途是什么?

本文关键字:最佳 文件 是什么 windows 应用程序 下载和 | 更新日期: 2023-09-27 18:02:32

我试过使用很多类来下载和上传文件,加上添加头和身份验证,但这些类都不支持!

我尝试过backgrounddownloader, backgroundduploader, httpclient, httpwebclient, httprequestmessage类,但它们都失败了。

也许我错过了一些东西,所以如果有人知道一个类,支持下载和上传认证和头,请分享你的代码。

在windows商店应用程序中下载和上传文件的最佳用途是什么?

BackgroundTransfer API应该处理报头和认证。报头是在BackgroundDownloader和backgroundduploader的SetRequestHeader方法中设置的。这个方法被设计成多次调用,每个头文件调用一次。

它们都有ServerCredential和ProxyCredential属性。这些都是Windows.Security.Credentials.PasswordCredential对象(http://msdn.microsoft.com/library/windows/apps/windows.security.credentials.passwordcredential.aspx)的实例。您通常会按如下方式创建PasswordCredential:

var cred = new Windows.Security.Credentials.PasswordCredential(resource, userName, password);

,在这种情况下,资源只是一个字符串,用于标识凭据所应用的资源(通常与凭据锁API一起使用,在这里不那么重要)。

你是说头和信用分别工作而不是一起工作吗?你是如何测试它们的?

解决了,整个问题是请求方法,它需要一个post而不是get,我用wireshark软件解决了这个问题。

var uri = new Uri("");
        var downloader = new BackgroundDownloader();
        downloader.SetRequestHeader("Range", "bytes=0-");
        downloader.Method = "POST";
        downloader.SetRequestHeader("Content-Type", "multipart/form-data; boundary=----WebKitFormBoundaryx5pLn3bHAS5Q8Ns5");
        downloader.ServerCredential = new Windows.Security.Credentials.PasswordCredential()
        {
            UserName = signin.theusername,
            Password = signin.thepassword
        };