今天在测试接口遇到一个问题,一个参数只获取到了一半怀着强烈的怀疑,不知道是golang自身还是使用的框架或者postman的原因,进行了排查。
首先测试接口使用了postman

image.png
结果:只接受到了bbb参数中的一般

image.png
二。浏览器测试

image.png
结果:也只有一半

image.png
三。搭建自己的golang服务端口
package main
import (
"log"
"net/http"
)
func sayhelloName(w http.ResponseWriter, r *http.Request) {
r.ParseForm() //解析参数,默认是不会解析的
//这些信息是输出到服务器端的打印信息
log.Println("aaa:", r.Form["aaa"])
log.Println("bbb:", r.Form["bbb"])
}
func main() {
http.HandleFunc("/", sayhelloName) //设置访问的路由
err := http.ListenAndServe(":9090", nil) //设置监听的端口
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
继续请求,分别使用postman和浏览器访问
结果:
结果:也只有一半

image.png
结论:
golang在接受query参数时,会自动忽略分号后面的东西,真的坑哦,希望广大大佬们,有不足之处,请高抬贵手,给我指正。
有疑问加站长微信联系(非本文作者)

query参数需要urlencode过才行吧