我有一个相当复杂的场景,我尝试从 Windows Phone 7 移植到 Windows 8。
我需要
- 从互联网下载 s Zip 文件
- 解压到隔离存储
- 阅读解压后的xml文件和图片
问题
在 Windows Phone 7 中,我使用的 WebClient 在 Windows 8 中不再可用。我尝试了 HttpClientHandler,但我只能以字符串形式下载 ZIP 文件,而且我不知道如何将它保存到独立存储.
我找到了 ZipArchive 类,但它需要一个 IO.Stream,我不太确定如何使用它(如果我将文件保存到某个地方 - 第 1 点)
请您参考如下方法:
我也刚开始使用新的 API(所以这可能有点偏离),但基于文档:
-
HttpClient(它是默认处理程序HttpClientHandler)返回Task<HttpResponseMessage>来自SendAsync. -
HttpResponseMessage有一个属性,Content这是类型HttpContent. -
HttpContent反过来有一个方法,ReadAsStreamAsync,返回Task<Stream>你应该能够使用它(尽管是间接的)传递给ZipArchive.
或者您可以只使用 HttpClient.GetStreamAsync 获取流的方法(更简单):
HttpClient client = new HttpClient();
Stream stream = await client.GetStreamAsync(uri);
如果这不起作用,那么您也可以将现在获得的字符串包装在
MemoryStream 中并将其传递给
ZipArchive 但这听起来有点不安全,因为可能存在编码问题。
