gpt4 book ai didi

string - 设置 POST 请求表单数据变量

转载 作者:IT王子 更新时间:2023-10-29 02:32:14 26 4
gpt4 key购买 nike

A := 123
B := "xyz"
b := bytes.NewBufferString("a=" + A + "&b=" + B)
r.Body = ioutil.NopCloser(b)

在发送POST请求之前,是否有更好的方法来设置变量ab

最佳答案

表单键和值中的某些字符需要转义,例如&=。所以为了避免这些错误,最好是使用 url.Values类型。

它将 string 键映射到 string 值列表。所以如果你有一个不是string的值,你必须先把它转换成string。最简单的是使用 fmt.Sprint()strconv.Itoa() (有关更多选项,请参阅 Golang: format a string without printing?)。

vs := url.Values{}
vs.Set("a", fmt.Sprint(123))
vs.Set("b", "xyz")
vs.Set("tricky", "= & =")
b := bytes.NewBufferString(vs.Encode())

url.Values 知道如何正确转义键和值。上面的 vs.Encode() 例如输出(在 Go Playground 上尝试):

a=123&b=xyz&tricky=%3D+%26+%3D

注意:

由于 url.Values 只是一个映射(以 map[string][]string 作为其基础类型),您还可以使用简单的 composite literal创建并填充它:

vs := url.Values{
"a": {strconv.Itoa(123)},
"b": {"xyz"},
"tricky": {"= & ="},
}
b := bytes.NewBufferString(vs.Encode())

Go Playground 上尝试这个变体.

关于string - 设置 POST 请求表单数据变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46561312/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com