GO:如何解决HTTP响应中的“传输连接断开:传输编码太多:[“chunked”“chunked”]”错误

zd287kbt  于 5个月前  发布在  Go
关注(0)|答案(1)|浏览(188)

服务器正在添加一个双重的“chunked“传输编码,我在我的响应中得到了这个错误消息。我没有访问服务器的权限,通过Postman,请求正常返回响应,但是版本> 16.2的Go返回这个错误。resp变量返回nil,错误变量返回“net/http:HTTP/1.x transfer connection broken:too many transfer encodings:[“chunked”“chunked”]".客户端是否可以修改响应编码?

client := http.Client{}
    
    url := config.Ctx.ProtocolUrl + "http:localhost:4200/execution/9832138938"
    req, _ := http.NewRequest(http.MethodGet, url,  nil)

    resp, err := client.Do(req)

    if err != nil {
        log.Print(err)
        return nil
    } else {
        if resp.StatusCode == 200 {
            body, _ := ioutil.ReadAll(resp.Body)
            defer resp.Body.Close()
            err = json.Unmarshal(body, &response)
            if err != nil {
                return response
            }
        }
    }

字符串

zlwx9yxi

zlwx9yxi1#

经过几天的搜索,技术阅读和理解,这不是一个错误,但它应该这样工作,我找到了一个解决方案,不涉及安装以前的版本或修改正常操作。

备选方案1

req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Accept-Encoding","identity")
client:= & http.Client {}
resp, _ := client.Do(req)

字符串

备选方案2

tr := &http.Transport {
     DisableCompression:true,
}
client := &http.Client {Transport:tr}
req, _ := http.NewRequest("GET", url, nil)
resp, _ := client.Do(req)


我在https://rarnu.xyz/archives/ktortogo找到了解决方案和解释。你需要先翻译一下。

相关问题