|
发表于 2024-11-19 17:34:35
|
显示全部楼层
项目中的代码,可以参考一下:
// 格式化请求参数
// copy 重新写入reqbody 默认写入
func CopyReqAndFormData(req *http.Request, copy ...bool) {
//获取请求体内容
bodyBytes, _ := ioutil.ReadAll(req.Body)
_ = req.Body.Close()
//将请求体内容重新写入请求体
req.Body = ioutil.NopCloser(bytes.NewBuffer(bodyBytes))
if strings.Index(req.Header.Get("Content-Type"), "json") > -1 {
_ = ParseJson(req)
} else {
_ = req.ParseForm() //格式化请求内容
}
//将请求体内容重新写入请求体
if len(copy) == 0 || copy[0] == false {
req.Body = ioutil.NopCloser(bytes.NewBuffer(bodyBytes))
}
} |
|