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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Go中的http獲取請求(獲取幾行)

Go中的http獲取請求(獲取幾行)

Go
精慕HU 2021-12-06 19:39:05
我只需要在 go lang 中獲得 a ) 請求的前幾行。http.Get(<url>有什么辦法可以做到。我不需要整個響應(yīng)。我需要匹配一個僅出現(xiàn)在前幾行的模式。獲取整個響應(yīng)并獲取正則表達式使其非常非常慢,因為響應(yīng)中的字符數(shù)非常大。這是最快的方法。目前我正在做http.Get(<url>)// 返回響應(yīng)ioutil.readAll(response of the above url)// 返回一個字節(jié)數(shù)組 MyFunction(search for reg exp in the byte array)有什么方法可以獲取幾行或避免獲取整個響應(yīng)并匹配模式。
查看完整描述

2 回答

?
慕標琳琳

TA貢獻1830條經(jīng)驗 獲得超9個贊

如果您知道需要從響應(yīng)中讀取多少內(nèi)容,則可以使用 LimitReader ( https://golang.org/pkg/io/#LimitedReader ),否則,最簡單的方法是進行讀?。ɑ驋呙鑳x) 消耗你的身體,直到你完成你的模式。


查看完整回答
反對 回復 2021-12-06
?
守著星空守著你

TA貢獻1799條經(jīng)驗 獲得超8個贊

不要使用ReadAll,只需讀取一個你知道足夠大的塊來捕獲你想要的請求部分


// response must be in the first 2048 bytes

buf := make([]byte, 2048)

n, err := resp.Body.Read(buf)

MyFunction(buf[:n])

或通過 io.LimitedReader


buf, err := ioutil.ReadAll(io.LimitReader(resp.Body, 2048))

或者,如果您真的需要通過行閱讀, bufio.Scanner


scanner := bufio.NewScanner(resp.Body)

for i := 0; i < fewLines && scanner.Scan(); i++ {

    MyFunction(scanner.Bytes())

}

但是請注意,如果您沒有讀完響應(yīng)正文,它將阻止您的客戶端重用連接,并且如果有大量傳入數(shù)據(jù),服務(wù)器可能不喜歡您經(jīng)常提前關(guān)閉連接。


查看完整回答
反對 回復 2021-12-06
  • 2 回答
  • 0 關(guān)注
  • 238 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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