xmlhttp中运行getResponseHeader出错,提示:The requested header was not found

作者:草上飞 来源:草上飞blog 时间:2010-03-27 21:47:00 

在做我的友情链接批量检查工具过程中,碰到一些情况,就是对方网页会用gzip压缩。用gzip压缩的好处是,能压缩网页大小,加快网页的浏览速度,现在越来越多的站长会使用gzip压缩技术以提高网站的浏览速度。

但是这样就会产生一个问题,我们在使用xmlhttp来抓取网页直接抓取的话,抓取到的网页内容将是乱码。

这样,我们则需要在抓取到用gzip压缩的网页后,需要用gzip来解压缩。所有,用gzip和不用gzip获得网页的代码完全不同。

所以我们需要用getResponseHeader("Content-Encoding")来判定所要抓取的网页是否经过了gzip压缩。但是更多的情况是一般网页都不会设置Content-Encoding这个header。则此时我们运行getResponseHeader("Content-Encoding")的时候,将会报错,报错提示如下:The requested header was not found

根据这个提示,我们应该在调用getResponseHeader("Content-Encoding")这个代码前,先判定下抓取的网页是否包含了Content-Encoding这个Header.

则我们可以用如下代码:

If InStr(LCase(http.getAllResponseHeaders()),"content-encoding")>0 then 
  '判定页面返回的Header是否包含Content-Encoding
   content-encoding=http.getResponseHeader("Content-Encoding")
end if

这样就不会报错了。

标签:gzip压缩,getResponseHeader,xmlhttp
0
投稿

猜你喜欢

  • 四种方法在SQL Server数据库中成批导入数据

    2009-02-19 17:25:00
  • 全局于网站整体的网页设计

    2009-03-27 17:15:00
  • SQL Server跟踪数据实现索引优化向导

    2009-02-13 17:14:00
  • PL/SQL数据类型及操作符

    2009-02-26 11:17:00
  • Firefox 下 innerHTML 的一个 BUG

    2008-08-05 18:19:00
  • sqlserver合并DataTable并排除重复数据的通用方法分享

    2012-01-05 18:59:56
  • sqlserver 存储过程动态参数调用实现代码

    2011-10-24 19:41:22
  • MySQL表设计优化与索引 (十)

    2010-10-25 19:51:00
  • 比较SQL Server与Oracle、DB2三种数据库

    2008-09-12 17:24:00
  • oracle数据库下统计专营店的男女数量的语句

    2012-07-11 16:01:17
  • SQL Server 2005改进后的几个实用新特性

    2008-05-07 19:16:00
  • 谈点关于checkbox的事情

    2010-09-28 14:49:00
  • 用ASP判断客户端浏览器语言自动跳转

    2010-07-09 13:34:00
  • 内容,而不是Chrome

    2008-10-16 13:43:00
  • SQL的小常识, 备忘之用, 慢慢补充.

    2011-11-03 17:19:45
  • MySQL 5数据库连接超时问题

    2009-12-29 10:23:00
  • Alexa排名数据xml接口及其参数说明

    2008-11-07 13:03:00
  • IE6/7关于 Absolute Position 、relative 的一些意外

    2008-11-27 11:34:00
  • 认识延迟时间为 0 的 setTimeout

    2008-04-04 16:37:00
  • 分析SQL语句性能3种方法分享

    2012-06-06 20:09:30
  • asp之家 网络编程 m.aspxhome.com