错误记录

记录go相关的报错

json.Unmarshalinvalid character '\x1f' looking for beginning of value

返回结果是被gzip压缩过的。直接用ioutil.ReadAll读取res.Body的话拿到的是乱码,如果用json反序列化的话会报标题中的错误。 用gzip.NewReader解码一次,可以解决此问题。

1
2
3
4
5
6
7
8
9
func d() {
	client := &http.Client{}
	req, err := http.NewRequest(t.Method, t.Url, strings.NewReader(t.Body))
  res, err := client.Do(req)
  // gzip
	ungzipbody, err := gzip.NewReader(res.Body)
	body, err := ioutil.ReadAll(ungzipbody)
	err = json.Unmarshal(body, c)
}

不知道是不是因为响应头中没有Content-Encoding: gzip

updatedupdated2022-08-052022-08-05

keywords: aa