0

我将WP8应用程序移植到WP8.1,它几乎就绪,除了使用WebClient获取JSON数据的代码外。 在WP8.1中,我无法再使用WebClient,所以我尝试使用HTTPClient,但没有成功。 这里的问题是我需要将编码设置为UTF-8,但我没有想出一种方法来做到这一点。在WP8.1上设置HTTPClient编码

在WP8的代码看起来像这样:

using (WebClient client = new WebClient()) 
      { 
       client.Encoding = Encoding.UTF8; 
       htmlCode = client.DownloadString(url); 
      } 

不过了HTTPClient没有Encoding属性。 任何人都知道在HTTPClient上设置此方法?

在此先感谢!

回答

0

你可以得到的数据作为一个字节数组,然后手动使用UTF-8对其进行解码:

using (HttpClient client = new HttpClient()) 
{ 
    byte[] data = await client.GetByteArrayAsync(uri); 
    htmlCode = Encoding.UTF8.GetString(data); 
} 
+0

这是用来返回一个字符串,所以它不可能是异步。创建异步方法来获取字节或者您知道更好的解决方案是一个很好的解决方案吗? '公共静态字符串RequestRaw(string url){string htmlCode =“”;使用(HttpClient客户端=新的HttpClient()){字节[]数据=等待client.GetByteArrayAsync(url); htmlCode = Encoding.UTF8.GetString(data); } return htmlCode; }' – 2014-12-13 17:14:10

+0

如果你不希望它是异步的,你可以使用:'byte [] data = client.GetByteArrayAsync(uri).Result;'但是因为它是一个web请求它是有意义的异步 – user882807 2014-12-13 17:18:18

+0

好吧,我把它转换成了一个任务'。谢谢您的帮助。 – 2014-12-13 17:29:14