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

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

無法從 go 中的 r.PostFormValue 中提取值?

無法從 go 中的 r.PostFormValue 中提取值?

Go
倚天杖 2022-08-24 18:54:50
我嘗試使用net / http PostFormValue從HTTP POST請求正文(在我的簡單Go HTTP服務(wù)器中)中提取值,當(dāng)我通常查找任何鍵時,我的輸出是一個空字符串,但在我的情況下,嘗試獲取用于HMAC檢查。我使用Postman使用Gorilla / mux路由器將請求發(fā)送到我的localhost:8080實例,并設(shè)置了標(biāo)頭。hub.secretContent-Type: application/x-www-form-urlencoded我的處理程序看起來像這樣:func rootPostHandler(w http.ResponseWriter, r *http.Request) {    var expectedMac []byte    body, err := ioutil.ReadAll(r.Body)    if err != nil {        http.Error(w, err.Error(), http.StatusInternalServerError)        return    }    log.Println("r.Body is:", string(body)) // debug: print the request POST body    message := body // debug: set message just for extra clarity    errParse := r.ParseForm()    if errParse != nil {        // handle err    }    secret := []byte(r.PostFormValue("hub.secret"))    log.Println("secret is: ", string(secret))            mac := hmac.New(sha256.New, secret)    mac.Write(message)    expectedMac = mac.Sum(nil)    fmt.Println("Is HMAC equal? ", hmac.Equal(message, expectedMac))    w.Header().Add("X-Hub-Signature", "sha256="+string(message))}正文:hub.callback=http%253A%252F%252Fweb-sub-client%253A8080%252FbRxvcmOcNk&hub.mode=subscribe&hub.secret=xTgSGLOtPNrBLLgYcKnL&hub.topic=%252Fa%252Ftopic打印等的輸出是空字符串,這意味著它找不到,對吧?我在這里錯過了什么?secrethub.secret
查看完整描述

1 回答

?
森林海

TA貢獻(xiàn)2011條經(jīng)驗 獲得超2個贊

應(yīng)用程序?qū)⒄埱笳淖x取到以下行上的 EOF:

body, err := ioutil.ReadAll(r.Body)

ParseForm 返回一個空窗體,因為正文位于以下行的 EOF:

errParse := r.ParseForm()

從網(wǎng)絡(luò)連接讀取請求正文。無法再次讀取請求正文。

刪除對 ioutil 的調(diào)用。ReadAll 或使用從 ioutil 返回的數(shù)據(jù)創(chuàng)建新的正文讀取器。閱讀全文:

r.Body = io.NopCloser(bytes.NewReader(body))


查看完整回答
反對 回復(fù) 2022-08-24
  • 1 回答
  • 0 關(guān)注
  • 204 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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