我像这样发出POST请求:
// ...pack non-zero buf
req, _ := http.NewRequest("POST", url, bufio.NewReader(buf))
req.Header.Add("X-Uid", "12345")
req.Header.Add("Content-Length", strconv.Itoa(buf.Len()))
client := http.Client{}
resp, err := client.Do(req)
我希望没有" Transfer-Encoding"标题将被传递,但我在服务器日志中看到" Transfer-Encoding:chunked"标题已通过。
答案 0 :(得分:0)
您正在将bufio.Reader
传递给http请求。由于您无法确定bufio.Reader
的长度,因此http包会覆盖Content-Length
以确保请求有效。
如果你有内容缓冲,并且你知道长度,那么没有理由将它包装在bufio.Reader
中,只需直接传递缓冲区。如果您还没有缓冲内容,请允许它使用分块编码,这不应该在请求中产生任何功能差异。