2013-03-24 74 views
1

现在我已经意识到我无法使用正常的.NET来编写我的Windows应用商店应用,我试图通过对于Windows应用商店应用的.NET 。我最近的发现是System.Net.WebClient类缺失,我需要使用它来上传文件。曾经来过这个班,我会沿着线做了一些:使用.NET上传文件用于Windows应用商店

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

不幸的是,我不能为Windows应用商店这样做是.NET。我将如何使用.NET for Windows Store实现类似的功能?

回答

2

我想尝试HttpClient类 - http://msdn.microsoft.com/en-us/library/system.net.http.httpclient.aspx - 它有Post方法,如果你看这个答案enter link description here,它显示了如何创建文件上传的多部分数据。

+0

感谢您的帮助,对不起,如果我很密集,但看起来好像在该示例中使用的其他几个类不受支持。例如'FileStream','httpWebRequest.GetResponse()'和'httpWebRequest.GetRequestStream()'都没有找到,并且'System.Text.Encoding.ASCII'似乎缺少,或者至少移动了。 – user2178640 2013-03-24 19:28:40

0

您首先需要参考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); 
     } 
    } 
}