http获取get参数过滤

r.URL.Query()
localhost:3000/about?name=111&b...
这个可以获取到map类型的所有参数
map[11:[] bb:[121,11] name:[111]]

vars := r.URL.Query()
        arr := map[string]interface{}{}
        for k,v := range vars{
            str := v[0]
            if str != "" {
                arr[k] = v[0]
            }
        }
        fmt.Println(arr)
  • 上述中可以简单地把有效参数获取整理到arrmap中
  • 但是时机中如有地址参数用户可以随机更改,不一定都是我们需要的数据
  • 所以我有如下更改
    student := map[string]interface{}{}
          student["name"] = map[string]interface{}{"max": 11, "min": 2, "type": "int"}
          student["age"] = map[string]interface{}{"max": 11, "min": 2, "type": "int"}
          arr := map[string]interface{}{}
          for k, v := range vars {
              _, ok := student[k]
              if ok {
                  str := &v[0]
                  if *str != "" {
                      arr[k] = *str
                  }
              }
          }
          fmt.Println(arr)
    从中如果我们得知该路由下我们需要的参数只有name和age时,过滤其他字符,其中每个字段里面的max,type等等还没有写,这块我们可以把参数验证也加进去
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!