golang 获取所有请求

369 阅读1分钟

最近在做一个项目,需要在数据库记录操作请求的所有请求参数,param和form里面的是需要分开来获取的,如果一次性获取所有的,这里从go-zero框架里面爬取了一个出来: `

func Parse(r *http.Request) (error, map[string]interface{}) {
  
   m := map[string]interface{}{}

   if err := r.ParseForm(); err != nil {
      return err, nil
   }

   if err := r.ParseMultipartForm(maxMemory); err != nil {
      if err != http.ErrNotMultipart {
         return err, nil
      }
   }
   for name := range r.Form {
      formValue := r.Form.Get(name)
      if len(formValue) > 0 {
         m[name] = formValue
      }
   }

   vars := pathvar.Vars(r)
   for k, v := range vars {
      m[k] = v
      logx.Infof(":", v)
   }
   return nil, m
}

`