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]>
- 1 回答
- 0 關注
- 140 瀏覽
添加回答
舉報