在HttpClient中解压缩之前是否可以访问压缩数据?
我正在使用Google Cloud Storage .NET客户端库。有三种功能(.NET,我的客户端库和存储服务之间)以不愉快的方式结合在一起: 下载文件(Google Cloud Storage术语中的对象)时,服务器会包含已存储数据的哈希值。然后,我的客户代码会根据下载的数据来验证该哈希。 Google云端存储的另一个功能是,用户可以设置对象的Content-Encoding,并且当请求包含匹配的Accept-Encoding时,该对象将作为下载的标头包含在内。(目前,让我们忽略请求中不包含的行为...) HttpClientHandler 可以自动透明地解压缩gzip(或压缩)内容。 当所有这三个结合在一起时,我们就会遇到麻烦。这是一个简短但完整的程序,演示了这一点,但是没有使用我的客户端库(并且没有访问可公开访问的文件): using System; using System.Linq; using System.Net; using System.Net.Http; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; class Program { static async Task Main() { string url = "https://www.googleapis.com/download/storage/v1/b/" + "storage-library-test-bucket/o/gzipped-text.txt?alt=media"; var handler = new HttpClientHandler { AutomaticDecompression = DecompressionMethods.GZip }; var …