【问题标题】:Upload File with .NET for Windows Store Apps使用 .NET 为 Windows 应用商店应用上传文件
【发布时间】:2013-03-14 05:16:18
【问题描述】:

现在我已经意识到我不能使用普通的.NET 来编写我的 Windows 应用商店应用程序,我正试图通过 Windows 应用商店应用程序的.NET 的混乱。我最新的发现是缺少System.Net.WebClient类,我需要用它来上传文件。如果这门课在那里,我会做一些类似的事情:

webClient.UploadFile("http://my.website/upload.php?a=" + someParam, "POST", filepath);

不幸的是,我无法在 .NET for windows store 中执行此操作。我将如何仅使用 .NET for Windows 商店来实现类似的功能?

【问题讨论】:

    标签: c# .net windows windows-8 windows-store


    【解决方案1】:

    我会尝试 HttpClient 类 - http://msdn.microsoft.com/en-us/library/system.net.http.httpclient.aspx - 它有 Post 方法,如果你看一下这个 answerenter link description here,它会展示如何为文件上传创建多部分数据。

    【讨论】:

    • 感谢您的帮助,如果我太密集了,很抱歉,但似乎不支持该示例中使用的其他几个类。例如,FileStreamhttpWebRequest.GetResponse()httpWebRequest.GetRequestStream() 都找不到,System.Text.Encoding.ASCII 似乎也不见了,或者至少也被移动了。
    【解决方案2】:

    您首先需要获得对StorageFile 的引用。使用FileOpenPicker 是一种方法:

    var filePicker = new FileOpenPicker();
    filePicker.FileTypeFilter.Add(".txt");
    var file = await filePicker.PickSingleFileAsync();
    

    然后使用以下代码上传文件(我没有尝试过,因为我没有方便的上传页面,但它应该可以工作):

    using (var randomStream = (await file.OpenReadAsync()))
    {
        using (var stream = randomStream.AsStream())
        {
            using (var content = new StreamContent(stream))
            {
                var httpClient = new HttpClient();
                await httpClient.PostAsync(uri, content);
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-26
      • 1970-01-01
      • 2020-04-17
      • 1970-01-01
      • 1970-01-01
      • 2012-02-23
      • 2016-03-31
      相关资源
      最近更新 更多