1

我正在使用 System.Net.WebClient.DownloadFile 从公共 Web 服务器下载大量 html 文件。我想启用压缩,因为这可能会大大减少数据传输。在上一个问题中有人告诉我,我应该设置“Accept-Encoding: gzip, deflate”标头。WebClient 有一个 Headers 属性允许这样做。

我对此有几个问题:

  1. 假设 Web 服务器可以识别标头,这适用于 DownloadFile 方法还是仅适用于 DownloadData 方法?我在 MSDN 或其他网站上找不到有关此的任何信息。
  2. 如果它不适用于 DownloadFile,实现将压缩数据下载到文件的最简单方法是什么?
  3. 是否需要为服务器设置任何其他标头来压缩其数据?在一个旧的codinghorror.com条目中,Jeff Atwood 说“UserAgent”标头也需要设置,但我不知道该值应该是什么。
4

1 回答 1

2
  1. DownloadFile 只是一个原始 WebRequest 的包装器;它只是处理结果并将其打包为“文件”或字节数组。
  2. 有用; 但是发送到本地文件的数据仍然是压缩的,您必须手动解压缩。

  3. 您将获得一个默认的 UserAgent。不需要任何特定的 UserAgent 值,除非您访问的站点需要一个。但是,您必须找出答案。(杰夫的帖子建议谷歌需要一个;但我不知道这是否仍然正确)

于 2012-07-26T15:40:31.573 回答