注意:为简单起见,省略了所有错误处理代码。我在本地处理它们,没有产生错误。
在 Golang 中,我尝试使用下面的代码http.Request.Body从 POST 请求中读取 a :
func readBody(req *http.Request) string {
bytes, _ := httputils.DumpRequestOut(req, true)
return string(bytes)
}
它显示了一个非零的 Content-Length,但没有返回任何内容:
ContentLength=413 with Body length 0
. 我尝试了下面的代码,也没有运气:
func readBody(req *http.Request) string {
bytes, _ := ioutil.ReadAll(req.Body)
return string(bytes)
}
它返回一个空字符串。google了下,找到了一篇关于这个问题的博客:Golang: Read from an io.ReadWriter without lost its content。我试图遵循模式,但仍然没有运气:
func readBody(req *http.Request) string {
bodyBytes, _ := ioutil.ReadAll(req.Body)
// Restore the io.ReadCloser to its original state
req.Body = ioutil.NopCloser(bytes.NewBuffer(bodyBytes))
// Use the content
return string(bodyBytes)
}
有什么建议?提前致谢 :)
繁花如伊
大话西游666
相关分类