0

我有这段代码在 WindowsForm 应用程序中运行良好,但我需要在 Windows Phone 7.1 应用程序中重新使用确切的(或类似的)代码。

HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(textBoxUrl.Text);
req.UserAgent = "MOZILLA/5.0 (WINDOWS NT 6.1; WOW64) APPLEWEBKIT/537.1 (KHTML, LIKE GECKO) CHROME/21.0.1180.75 SAFARI/537.1";
req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
req.Headers.Add("Accept-Encoding", "gzip,deflate");

GZipStream zip = new GZipStream(req.GetResponse().GetResponseStream(),
                                                      CompressionMode.Decompress);
var reader = new StreamReader(zip);
var page = reader.ReadToEnd();

当我将此代码移至 Windows Phone 时,没有GZipStream. 在 Windows Phone 环境中也HttpWebRequest.Headers没有方法。Add有人会告诉我解决这个问题的方法吗?

4

1 回答 1

2

您确实应该使用Microsoft.Net.HttpNuGet,它是 Microsoft 的一个可移植类库,它将 .NET 4.5 中的 HttpClient 方法引入到所有当前版本的框架中,并包括 GZIP 和 DEFLATE 支持。

这也意味着无论您针对什么平台,您尝试完成的功能的所有代码都将保持不变。

我还应该指出,当流实际上是 GZIP 编码时,您使用的代码将起作用,但如果流未压缩,则不会起作用。这就是您应该使用 HttpClient 的更多原因。

高温高压

于 2013-09-22T18:37:43.133 回答