【问题标题】:alternative to webclient.uploadstringasync for windows 8 metro style app in c#c# 中 Windows 8 Metro 风格应用程序的 webclient.uploadstringasync 的替代品
【发布时间】:2012-07-10 19:00:47
【问题描述】:

我正在使用 Visual Studio Express 2012 RC 为 Windows 8 设计我的 Metro 风格应用程序。

过去,我为 windows phone 开发了一个应用程序,在其中我使用webclient.uploadstringasync 将字符串数据发布到服务器。但由于webclient 不适用于 Windows 8,我正在寻找它的替代方案。

我尝试使用httpclient.postasync,但它不起作用(不知道为什么)。

任何人都可以建议我做什么。请解释您建议的任何方法并尝试举例说明。我是 C# 的初学者,所以任何帮助都会起作用。谢谢

这是我与httpclient.postasync 一起使用但不起作用的代码示例(不知道为什么)。

HttpClient data=new HttpClient();
HttpContent post;
async private void buttonupdate_Click(object sender, RoutedEventArgs e)
{
    post=new StringContent("I put the string here which is to be posted");
    await data.PostAsync(URI,post);  
}

【问题讨论】:

  • 当您尝试使用HttpClient.PostAsync 时发生了什么?能给个代码示例吗?听起来它是您正在寻找的替代方案。
  • @DanielSklenitzka 用代码示例更新了问题..请帮助谢谢
  • 有异常吗?你在 Fiddler 中看到了什么?
  • @StephenCleary 根本没有错误...应用程序运行良好,但我看不到任何发布到服务器的字符串...我使用了 webclient 的 post 方法,它工作,但使用 httpclient 它不是 wokring.......我必须提到我想在 httpclient 中使用 post 方法,就像我们在 webclient 中所做的一样?
  • 您是否声明了internetClient 功能?

标签: c# windows post httpclient webclient


【解决方案1】:
HttpContent stringContent = new StringContent("Put Your Data Here");
stringContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/x-www-form-urlencoded");
stringContent.Headers.ContentLength = uriString.Length;
stringContent.Headers.ContentEncoding.Add("UTF-8");

【讨论】:

    【解决方案2】:

    请查看适用于 windows 8 的 BackgroundUploader 类,它提供了可能有助于实现您的要求的重载方法

    MSDN

    【讨论】:

    • 我不认为我应该使用它,因为我只是想上传一个 kb 的小字符串......它清楚地写在你提供的链接上,我应该只如果我想上传音乐、视频等文件,请使用此方法。
    • 我同意你的看法,我只是给你一个替代方案,不知道你将上传多少数据。我很高兴删除我的答案
    • 不,你不必删除你的答案......现在我已经在问题中添加了代码示例......你现在可以回答我了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-25
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多