前面一片Blog内容是说用程序模仿浏览器来请求页面。
之前在调试的时候,发现请求正常,但是请求结果是乱码。
尝试了好几种编码的方式,都解决不了。
问题出在我那段Cookie的参数上面了。一个个试,终于发现问题出现在这行上面:
去掉这行,一切就正常了!
Google了一下,发现问题出在gzip上面。
下面是一个普通的HTTP请求信息:
[img]/upload/attachment/113641/600f4de0-5b20-3f97-ac6c-56d675d4c102.gif[/img]
为什么用浏览器可以正常浏览,而我用程序模仿就不行呢?
答案在这里:
[quote]gzip是一种数据格式
默认且目前仅使用deflate算法压缩data部分,此法用于压缩传输
如果服务器支持Gzip,那么客户端必须要IE5.5以上!
数据返回给客户端时候已经被gzip压缩了,只是IE可以自动解压,而你的程序里面没有自动解压而已……
同样道理,你可以弄个解压算法来把乱码的数据解压,即可得到正常的HTML返回结果。[/quote]
之前在调试的时候,发现请求正常,但是请求结果是乱码。
尝试了好几种编码的方式,都解决不了。
问题出在我那段Cookie的参数上面了。一个个试,终于发现问题出现在这行上面:
getMethod.setRequestHeader("Accept-Encoding","gzip, deflate");去掉这行,一切就正常了!
Google了一下,发现问题出在gzip上面。
下面是一个普通的HTTP请求信息:
[img]/upload/attachment/113641/600f4de0-5b20-3f97-ac6c-56d675d4c102.gif[/img]
为什么用浏览器可以正常浏览,而我用程序模仿就不行呢?
答案在这里:
[quote]gzip是一种数据格式
默认且目前仅使用deflate算法压缩data部分,此法用于压缩传输
如果服务器支持Gzip,那么客户端必须要IE5.5以上!
数据返回给客户端时候已经被gzip压缩了,只是IE可以自动解压,而你的程序里面没有自动解压而已……
同样道理,你可以弄个解压算法来把乱码的数据解压,即可得到正常的HTML返回结果。[/quote]
本文讲述了在使用程序模拟浏览器请求网页时遇到的乱码问题及解决方案。通过调整Accept-Encoding头部设置,避免了服务器返回gzip压缩数据导致的乱码,并介绍了如何通过解压算法处理gzip压缩的内容。
655

被折叠的 条评论
为什么被折叠?



