• AcceptEncoding: gzip,deflate


    IE和我们的代码使用的HTTP头里面都有这条内容,将这条内容删掉我得到了正确的结果。原因如下:

    这条信息代表本地可以接收压缩格式的数据,而服务器在处理时就将大文件压缩再发回客户端,IE在接收完成后在本地对这个文件又进行了解压操作,所以文件内容是正确的。而在我们的代码里是将这些内容直接存入文件,不存在解压缩的过程,所以Size变小,内容也不一样。

    细心的人可以发现在,IE在Down某一个比较大一点的东西时,Down的过程中显示的大小,比Down下来实际大小要小,这就是因为在接收的过程中接收的是压缩文件,而存到本地后的文件当然要大一些了哈~~

    Accept-Encoding: gzip,deflate

    文章分类:Web前端

    前面一片Blog内容是说用程序模仿浏览器来请求页面。

    之前在调试的时候,发现请求正常,但是请求结果是乱码。

    尝试了好几种编码的方式,都解决不了。

    问题出在我那段Cookie的参数上面了。一个个试,终于发现问题出现在这行上面:

    Java代码 复制代码
    1. getMethod.setRequestHeader("Accept-Encoding","gzip, deflate");  
    getMethod.setRequestHeader("Accept-Encoding","gzip, deflate");

    去掉这行,一切就正常了!

    Google了一下,发现问题出在gzip上面。

    下面是一个普通的HTTP请求信息:


    为什么用浏览器可以正常浏览,而我用程序模仿就不行呢?

    答案在这里:
    引用
    gzip是一种数据格式
    默认且目前仅使用deflate算法压缩data部分,此法用于压缩传输
    如果服务器支持Gzip,那么客户端必须要IE5.5以上!

    数据返回给客户端时候已经被gzip压缩了,只是IE可以自动解压,而你的程序里面没有自动解压而已……

    同样道理,你可以弄个解压算法来把乱码的数据解压,即可得到正常的HTML返回结果。
  • 相关阅读:
    linux 配置ssh免密码登陆本机
    Java连接mysql数据库并插入中文数据显示乱码
    新浪微博热门评论爬虫采集
    新浪微博热门评论抽取规则
    【MySql】Java 批量插入数据库addBatch
    算法设计题4.3 等差数列
    PHP setcookie() 函数
    Linux下用于查看系统当前登录用户信息 w命令
    Ubuntu 登录锐捷 网卡被禁用 网口灯不亮解决
    将 VMware 最小化到系统托盘
  • 原文地址:https://www.cnblogs.com/linyawen/p/1937204.html
Copyright © 2020-2023  润新知