含分号的查询参数导致表单取值为空的问题求助
含分号的查询参数导致表单取值为空的问题求助
我最近在处理Go语言的HTTP请求查询参数时碰到了个棘手的问题,想过来问问大家有没有解决思路:
- 当请求的查询参数是
?file=hello;时,我完全拿不到file的参数值,它是空的; - 但如果参数是
?file=hello(去掉末尾的分号),就能正常获取到hello这个值。
我已经试了两种解析参数的写法,结果都不太对:
第一种写法:
err := r.ParseForm() fmt.Println(err) fileName := r.FormValue("file")
第二种写法:
var err error r.Form, err = url.ParseQuery(r.URL.String()) fmt.Println(err) fileName = r.FormValue("file")
两种方式都会输出错误:invalid semicolon separator in query,而且不管是查看PostForm还是Form,得到的都是空的map。我本来期望解析后能得到map[file:[hello;]]这样的结果,现在完全达不到预期,有没有朋友知道这该怎么解决呀?
备注:内容来源于stack exchange,提问作者suhaib motaz
相关产品推荐
相关产品推荐

