Golang相关的错误记录

Record go-related errors

json.Unmarshal

invalid character '\x1f' looking for beginning of value

返回结果是被gzip压缩过的。直接用ioutil.ReadAll读取res.Body的话拿到的是乱码,如果用 json.Unmarshal 解析的话会报错 invalid character '\x1f' looking for beginning of value。 用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-162022-08-16