1

我正在将应用程序从 WPF 移植到 Windows 8 应用程序。

我想知道System.Net.WebClient.UploadStringSystem.Net.Http.HttpClient命名空间中是否有类似的功能(因为System.Net.WebClient在 中不可用WinRT)如果是,非常感谢一个例子!如果没有,还有其他选择吗?

在旁注中,我能够在Morten Nielsen 的帮助下转换WebClient.DownloadString为等效的 using命名空间http://www.sharpgis.net/post/2011/10/05/WinRT-vs-Silverlight-Part-7-制作-WebRequests.aspxSystem.Net.Http.HttpClient

4

1 回答 1

1

是的,你会使用PostAsync方法

该方法采用一个Uri或一个字符串(就像 WebClient 类中的UploadString方法一样)以及一个HttpContent实例

HttpContent实例旨在与不同类型的内容无关,允许您不仅指定提供内容的机制(ByteArrayContent对于字节数组,对于 a 的StreamContentStream等),而且还指定结构(MultipartFormDataContent)。

也就是说,还有一个StringContent会发送字符串,如下所示:

// 内容。string post = "您要发布的内容";

// The client.
using (client = new HttpClient());
{
    // Post.
    // Let's assume you're in an async method.
    HttpResponseMessage response = await client.Post(
        "http://yourdomain/post", new StringContent(post));

    // Do something with the response.
}

如果你需要指定一个Encoding有一个构造函数接受一个Encoding,你可以像这样使用它:

// The client.
using (client = new HttpClient());
{
    // Post.
    // Let's assume you're in an async method.
    HttpResponseMessage response = await client.Post(
        "http://yourdomain/post", new StringContent(post),
         Encoding.ASCII);

    // Do something with the response.
}

从那里开始,在发送响应时处理HttpResponseMessage(如果这对您很重要,如果它不是单向操作)。

于 2013-01-04T18:06:16.873 回答