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

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

發送帶有請求正文的 POST 請求,就像字符串一樣

發送帶有請求正文的 POST 請求,就像字符串一樣

Go
慕絲7291255 2023-05-15 14:59:01
我在我的網絡服務器上設置了一個頁面,其中包含一個“電子郵件地址”框和一個提交按鈕。我有它,所以當它被提交時,它會發送一個發布請求來檢查它是否存在于我的數據庫中。我一直在使用 Go 來嘗試發送這個 POST 請求。但是,我需要按以下方式發送請求正文:demo_mail=<email>我沒有在網上找到任何有用的東西,只有帖子詢問如何使用 JSON 而不是字符串發送數據。我目前有以下代碼運行但無法發送帶有上述發布數據的 POST 請求。req, err := http.NewRequest("POST", "<MY PAGE>", ioutil.NopCloser(bytes.NewBufferString("demo_mail=" + email)))            req.Header.Set("Content-Type", "application/x-www-form-urlencoded")            req.Header.Set("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8")            req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36")            resp, err := client.Do(req)            if err != nil {                 color.Red("Error.")            }            defer resp.Body.Close()            body, _ := ioutil.ReadAll(resp.Body)            if strings.Contains(string(body), "Success") {                fmt.Println("Email exists")            } else {                fmt.Println("Fail")            }任何幫助表示贊賞。
查看完整描述

1 回答

?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

您期望的正文實際上已正確發送,但可能不是您想要的方式:


POST /foo HTTP/1.1

...

Transfer-Encoding: chunked

...

Content-Type: application/x-www-form-urlencoded

...


17

demo_mail=<[email protected]>

0

由于您已將字符串包裝成 a ,io.NopCloser因此它會假定長度事先未知。io.Reader因此,它將使用分塊傳輸編碼來發送從長度為前綴的每個塊返回的塊,一旦一切都完成,最后一個塊的長度為 0。


如果你不想有這種行為,你需要提供一個緩沖區,其中長度是預先知道的。ioutil.NopCloser這可以通過簡單地刪除周圍來完成bytes.NewBufferString:


req, err := http.NewRequest("POST", "<MY PAGE>", bytes.NewBufferString("demo_mail=" + email))

有了這個,請求將使用Content-length而不是分塊傳輸編碼,并且正文將只包含字符串:


POST /foo HTTP/1.1

...

Content-Length: 23

...

Content-Type: application/x-www-form-urlencoded

...


demo_mail=<[email protected]>


查看完整回答
反對 回復 2023-05-15
  • 1 回答
  • 0 關注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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