这两天在写一个打卡脚本,需要对打卡后服务端响应进行解析以便调试。

四月又来了……

头图来源:四月是你的谎言


服务端返回的响应体是json格式,解析的时候却报错了,报错信息如下:

invalid character '\x1f' looking for beginning of value

这里的x1f是个转义字符。这报错信息咋一看有些摸不着头脑,于是决定从响应头入手,看看有没有有用的信息,果然,在响应头中找到这一条

Content-Encoding: gzip

这就表示服务端的响应体经过了gzip压缩编码,这下就好办了,使用go提供的原生库"compress/gzip"就能轻松解码。具体代码如下:

   gr,err:=gzip.NewReader(resp.Body) //初始化gzip reader
   defer gr.Close() //函数退出时关闭reader防止内存泄漏
   if err!=nil{
    return err
   }
   raw,_=ioutil.ReadAll(gr) //从gzip reader中读取解码后的字节流

ok,完工。


参考文章:

Last modification:September 4th, 2023 at 10:11 pm
If you think my article is useful to you, please feel free to appreciate