需要使用到两个Stream的子类:GZipStream、DeflateStream,代码如下:

  1. public string GetResponseBody(HttpWebResponse response)
  2. {
  3. string responseBody = string.Empty;
  4. if (response.ContentEncoding.ToLower().Contains("gzip"))
  5. {
  6. using (GZipStream stream = new GZipStream(response.GetResponseStream(),CompressionMode.Decompress))
  7. {
  8. using (StreamReaderreader = new StreamReader(stream))
  9. {
  10. responseBody = reader.ReadToEnd();
  11. }
  12. }
  13. }
  14. else if (response.ContentEncoding.ToLower().Contains("deflate"))
  15. {
  16. using (DeflateStream stream = new DeflateStream(response.GetResponseStream(),CompressionMode.Decompress))
  17. {
  18. using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
  19. {
  20. responseBody = reader.ReadToEnd();
  21. }
  22. }
  23. }
  24. else
  25. {
  26. using (Stream stream = response.GetResponseStream())
  27. {
  28. using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
  29. {
  30. responseBody = reader.ReadToEnd();
  31. }
  32. }
  33. }
  34. return responseBody;
  35. }

HttpWebResponse 解压gzip、deflate压缩的更多相关文章

  1. curl解压gzip页面gzcompress内容

    $headers = array( //"Content-type:application/json;charset='utf-8'", "Cache-Control:n ...

  2. 解压gzip格式文件(包括网页)

    先上源码 参数说名: - source :gzip格式流内容. - len: gzip流长度 - dest: 解压后字符流指针 - gzip: 压缩标志,非0时解压gzip格式,否则按照zip解压 说 ...

  3. shell 命令 tar -zxvf 解压 tar -zcvf 压缩

    tar -zxvf 解压 tar -zcvf 压缩

  4. node解压压缩包以及压缩图片

    node解压压缩包以及压缩图片 首先保证电脑安装node环境,下载地址:http://nodejs.cn //可以打开一个dos窗口输入node -v进行确认是否安装成功 C:\ > node ...

  5. linux 如何对文件解压或打包压缩

    tar命令用与对文件打包压缩或解压,格式: tar [选项] [文件] 打包并压缩文件: tar -czvf  压缩包名 .tar.gz 解压并展开压缩包: tar -xzvf  压缩包名 .tar. ...

  6. Linux下常用压缩 解压命令和压缩比率对比

    常用的格式有:tar, tar.gz(tgz), tar.bz2, 不同方式,压缩和解压方式所耗CPU时间和压缩比率也差异也比较大. 1. tar只是打包动作,相当于归档处理,不做压缩:解压也一样,只 ...

  7. UWP 解压 GZIP

    准备工作: 通过 NUGET 安装 Microsoft.Bcl.Compression ; 使用命名空间 using System.IO.Compression ; public static asy ...

  8. Linux下常用压缩 解压命令与压缩比率对比

    常用的格式有:tar, tar.gz(tgz), tar.bz2, 不同方式,压缩和解压方式所耗CPU时间和压缩比率也差异也比较大. 1. tar只是打包动作,相当于归档处理,不做压缩:解压也一样,只 ...

  9. 浅谈Linux下各种压缩 解压命令和压缩比率对比

    Linux下压缩.解压命令五花八门,不像在windows下一个winrar打遍天下无敌手,清一色的.rar .zip格式. 比如,Linux下常用的tar tar.gz tar.bz2 .Z等等不一而 ...

随机推荐

  1. touch-paint

    效果如下 代码如下: //index.html <!DOCTYPE html> <html lang="zh-CN"> <head> <m ...

  2. C++ template一些体悟(3)

    其实没啥体悟,因为还没有感受到这些例子的作用,记一下先 #include <iostream> using namespace std; class alloc { }; template ...

  3. 多文件协作,extern、static、头文件

    多个cpp文件协同工作.使用外部函数.变量时,必须先声明再使用.声明外部函数(一般在main.cpp中),extern可省略(主函数中默认可访问外部函数)extern void RectArea(); ...

  4. (LIS) P1091 合唱队形 洛谷

    题目描述 NN位同学站成一排,音乐老师要请其中的(N-KN−K)位同学出列,使得剩下的KK位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,…,K1,2,…,K,他 ...

  5. php的扩展配置

    第一步:在php的安装目录下找到php.ini-development这个文件,并复制一个副本,修改这个副本的文件名为:php.ini 如下图我的目录为: 第二步:打开这个php.ini,修改 将这里 ...

  6. python自动化开发-[第十七天]-django的ORM与其他

    今日概要: 1.name别名 2.模版的深度查询 3.模版语言之filter 4.自定义过滤器,filter和simpletag的区别 5.orm进阶 扫盲:url的组成 URL:协议+域名+端口+路 ...

  7. 编写Excel文件的Golang库

    github:https://github.com/360EntSecGroup-Skylar/excelize 使用用例 https://dev.to/xuri/go-library-for-rea ...

  8. CentOS7 yum安装、配置PostgreSQL 9.5

    PostgreSQL 9.5安装 1.添加RPM yum install https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7 ...

  9. python jquery初识

     jQuery的介绍 jQuery是一个快速,小巧,功能丰富的JavaScript库.它通过易于使用的API在大量浏览器中运行,使得HTML文档遍历和操作, 事件处理动画和Ajax更加简单.通过多功能 ...

  10. mssql的 for xml path 与 mysql中的group_concat类似MSSQL For xml Path

    /****** Script for SelectTopNRows command from SSMS ******/ SELECT D_ID,[D_Name] as Name FROM [LFBMP ...