试图附加到现有的查询字符串,但是“?”继续查询字符串被替换为“%3”
server := "server.com"
endpoint:= "/buildWithParameters?token=<top_secret>"
// concat server and build job
u, err := url.Parse(server)
u.Path = path.Join(u.Path, endpoint)
endpoint := u.String()
// since we are appending to existing querystring, request is needed for parsing
req, err := http.NewRequest("POST", endpoint, nil)
if err != nil {
return fmt.Errorf("Error creating post request: (%v)", err)
}
// read existing query string
q := req.URL.Query()
q.Add("key", "value")
req.URL.RawQuery = q.Encode()
log.Println(req.URL.String())
输出是:
https://server.com/job/jobbyjob/buildWithParameters%3Ftoken=<top_secret>?key=value
最佳答案
那是因为您将查询字符串附加到路径,所以库正确转义了 ?
制作一个有效的网址。如果你想要token=<top_secret>
要被视为查询的一部分,您需要将其添加到查询中:
endpoint:= "/buildWithParameters"
// ...
q.Add("token", "<top_secret>")
关于go - http 查询字符串 : question mark becomes %3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55248217/