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

时间:2014-05-08 22:03:52

标签: c# authentication download windows-store-apps

我尝试过使用很多类来下载和上传文件以及添加标题和身份验证,但这些类都不支持这两个类!

我已经尝试过backgrounddownloader,backgrounduploader,httpclient,httpwebclient,httprequestmessage类,但所有这些都让我失望。

也许我错过了什么,所以如果有人知道支持下载和上传身份验证和标题的课程,请分享您的代码。

2 个答案:

答案 0 :(得分:0)

BackgroundTransfer API应该处理头文件和身份验证。标头在BackgroundDownloader和BackgroundUploader的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);

其中资源在这种情况下只是一个字符串,用于标识凭据所适用的资源(通常与Credential Locker API一起使用,此处不重要)。

你是说说标题和信用证分开工作但不能一起工作?你是如何测试它们的?

答案 1 :(得分:0)

解决了它,整个问题是请求方法,它需要一个帖子而不是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
        };