Go http客户端不';自动脱钩机构

Go http客户端不';自动脱钩机构,http,go,chunked-encoding,transfer-encoding,Http,Go,Chunked Encoding,Transfer Encoding,我正在从Go传输http,服务器按照预期响应“传输编码:分块”。我被告知Go中的http客户端将自动从http响应中取消正文,从而删除\r\n。但在我的例子中,它不是自动删除的,所以我必须使用ChunkedReader来读取主体 知道戈朗为什么不自动脱掉我的身体吗 编辑: 以下是http请求: var transport = http.Transport{ Proxy: nil, ExpectContinueTimeout: 0, MaxRespo

我正在从Go传输http,服务器按照预期响应“传输编码:分块”。我被告知Go中的http客户端将自动从http响应中取消正文,从而删除\r\n。但在我的例子中,它不是自动删除的,所以我必须使用ChunkedReader来读取主体

知道戈朗为什么不自动脱掉我的身体吗

编辑: 以下是http请求:

var transport = http.Transport{
  Proxy:                  nil,
  ExpectContinueTimeout:  0,
  MaxResponseHeaderBytes: 16384}

var httpClient = http.Client{
  Transport: &transport,
  CheckRedirect: func(req *http.Request, via []*http.Request) error {
    return http.ErrUseLastResponse
}}

bodyReader, bodyWriter := io.Pipe()
req, _ := http.NewRequest("GET", "http://x.x.x.x/stream", bodyReader)
response, err := httpClient.Do(req)

buffer := make([]byte, 2 << 15)
n, readErr = response.Body.Read(buffer)   <-- should be dechunked body
var transport=http.transport{
代理:无,
ExpectContinueTimeout:0,
MaxResponseHeaderBytes:16384}
var httpClient=http.Client{
运输:&运输,
CheckRedirect:func(req*http.Request,通过[]*http.Request)错误{
返回http.ErrUseLastResponse
}}
bodyReader,bodyWriter:=io.Pipe()
req,uq:=http.NewRequest(“GET”http://x.x.x.x/stream“,bodyReader)
响应,错误:=httpClient.Do(req)

buffer:=make([]字节,2我弄明白了为什么正文没有自动取消chunk。这是因为HTTP响应是HTTP/1.0。在这种情况下,golang忽略了传输编码头


什么是“从http响应中取消正文,删除\r\n”意思?取消正文与删除Windows lineendings无关(至少不直接相关):“它不会自动删除”--未删除的内容?在任何情况下,如果您需要帮助调试代码,则必须在问题中包含所有相关代码。请使用a更新您的问题。在第66行中,它表示“如果服务器使用“分块”传输编码答复,则正文将自动取消分块。”…这不会发生。为什么?这是我的问题。正如前面所解释的,在我们看到您的代码之前,无法告诉您它为什么会做任何事情。