Form
,PostForm
和ParseForm()
仅在收到请求时使用。发送请求时,传输程序期望对数据进行正确的编码。
通过包装RoundTrip
,您有一个正确的主意,但是您必须自己处理编码的数据。
if req.URL.RawQuery == "" {
req.URL.RawQuery = "foo=bar"
} else {
req.URL.RawQuery = req.URL.RawQuery + "&" + "foo=bar"
}
或者:
form, _ = url.ParseQuery(req.URL.RawQuery)
form.Add("boo", "far")
req.URL.RawQuery = form.Encode()
url.Values
如果要避免重复键,也可以选择预先检查。检查Content-Type
标头以防止与其他类型的查询交互multipart/form- data
或application/x-www-form-urlencoded
避免与其他类型的查询交互也可能是一个好主意。