我正在嘗試使用Go閱讀gzip壓縮的HTTP響應(yīng)!但我總是收到以下錯(cuò)誤消息:panic: gzip: invalid header[...] stack trace [...]如果我運(yùn)行“ curl -H” Accept-Encoding:gzip“ http://foo.com/ | gunzip-”,我得到的響應(yīng)將正確壓縮。我也用ngrep仔細(xì)檢查過,正確發(fā)送/返回了對(duì)Accept-Encoding / Content-Encoding。如果我創(chuàng)建了一個(gè)包含一些虛擬內(nèi)容的文件并將其gzip壓縮,則可以從Go中讀取它!程序。我用于測試的程序:package mainimport ( "io" //"os" "fmt" "compress/gzip" "net/http")func main() { /* This works fine f, _ := os.Open("/tmp/test.gz") defer f.Close() reader, err := gzip.NewReader(f) */ // This does not :/ resp, _ := http.Get("http://foo.com/") defer resp.Body.Close() reader, err := gzip.NewReader(resp.Body) if err != nil { panic(err) } buff := make([]byte, 1024) for { n, err := reader.Read(buff) if err != nil && err != io.EOF { panic(err) } if n == 0 { break } } s := fmt.Sprintf("%s", buff) fmt.Println(s)}我忽略了什么嗎?
- 3 回答
- 0 關(guān)注
- 638 瀏覽
添加回答
舉報(bào)
0/150
提交
取消