golang抓取gzip网页不自动解码

用golang的net/http库去抓取网页,发现得到的突然是乱码了,一看http头,发现返回的是gzip。

根据文档,http库是会自动解码gzip返回的,而这里不管怎么折腾返回就是乱码。

只好看了一下golang的源码实现(http://golang.org/src/pkg/net/http/transport.go),发现事实居然是这样的:

如果代码中指定了Accept-Encoding=gzip,那么它就不会自动解码了,而是直接返回,只有不指定的时候才会自动解码。

解决办法就是去掉指定Accept-Encoding=gzip的代码或者自己根据返回进行gzip。

2014年10月28日