第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在Go中讀取gzip壓縮的HTTP響應(yīng)

在Go中讀取gzip壓縮的HTTP響應(yīng)

Go
手掌心 2021-05-07 18:50:07
我正在嘗試使用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 回答

?
Smart貓小萌

TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊

net/http#Transport處理gzip壓縮的響應(yīng)。您不必做任何特別的事情。

看看這里DisableCompression選項(xiàng)。


查看完整回答
反對(duì) 回復(fù) 2021-05-17
?
飲歌長嘯

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊

根據(jù)net / http docs(第110行)的說明,如果您手動(dòng)設(shè)置Accept-Encoding請(qǐng)求標(biāo)頭,則gzip壓縮的響應(yīng)將不會(huì)被http.Transport自動(dòng)解壓縮。否則,行為由Transport的DisableCompression布爾值控制

查看完整回答
反對(duì) 回復(fù) 2021-05-17
  • 3 回答
  • 0 關(guān)注
  • 638 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)