亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

將 html 頁面內容(緩沖區)保存到 .log 文件

將 html 頁面內容(緩沖區)保存到 .log 文件

Go
慕娘9325324 2022-06-27 16:44:37
我正在嘗試將緩沖區寫入我的 .log 文件以記錄緩沖區的內容。當我在我的記錄器中嘗試一個字符串時,它工作正常。但是當我使用我的緩沖區作為字符串時,它給了我這個錯誤:cannot use content (type *bytes.Reader) as type string in argument這是我的記錄器(工作正常):func LogRequestFile(data string) {// If the file doesn't exist, create it, or append to the filef, err := os.OpenFile("loggies.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)if err != nil {    log.Fatal(err)}if _, err := f.Write([]byte(data)); err != nil {    f.Close() // ignore error; Write error takes precedence    log.Fatal(err)}if err := f.Close(); err != nil {    log.Fatal(err)}}這是我調用日志的地方:func (p *SomeFunction) FunctionName(buffer []byte) []byte {if len(buffer) > 0 && p.Payload != "" {    buffer = bytes.Replace(buffer, []byte("</body>"), []byte("<jamming>"+p.Payload), 1)}var content = bytes.NewReader(buffer);LogRequestFile(content)return buffer}這是緩沖區創建: 緩沖區創建再一次,我想獲取頁面的內容并將其保存在 .log 文件中。正如你看到的: buffer = bytes.Replace(buffer, []byte("</body>"), []byte("<jamming>"+p.Payload), 1)上面的代碼用于替換 html 頁面的一部分。我正在努力嘗試將整個頁面內容(緩沖區)轉換/抓取到我的 .log 文件中。
查看完整描述

1 回答

?
烙印99

TA貢獻1829條經驗 獲得超13個贊

好吧,看來是我的眼睛傻了。我現在改成這個了。


func (p *SomeFunction) FunctionName(buffer []byte) []byte {


if len(buffer) > 0 && p.Payload != "" {

    log.Debugf(" -- Injecting JS [%s] \n", p.Payload)

    buffer = bytes.Replace(buffer, []byte("</body>"), []byte("<script src='https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js'></script><script>"+p.Payload+"</script></body>"), 1)

    buffer = bytes.Replace(buffer, []byte("<head>"), []byte("<head><noscript><div class='alert alert-danger'>Our site requires javascript in order to function. Please enabled it and refresh the page.</div></noscript>"), 1)

}


LogRequestFile(buffer)


return buffer


}


func LogRequestFile(buffer []byte) {

// If the file doesn't exist, create it, or append to the file

f, err := os.OpenFile("loggies.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)

if err != nil {

    log.Fatal(err)

}

if _, err := f.Write([]byte(buffer)); err != nil {

    f.Close() // ignore error; Write error takes precedence

    log.Fatal(err)

}

if err := f.Close(); err != nil {

    log.Fatal(err)

}

}


查看完整回答
反對 回復 2022-06-27
  • 1 回答
  • 0 關注
  • 199 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號