gpt4 book ai didi

http - 如何在golang中生成查询字符串?

转载 作者:行者123 更新时间:2023-12-01 22:30:42 28 4
gpt4 key购买 nike

在我的用例中,我需要将数据发布到 url,但数据本身是一个查询字符串。示例:

curl -POST -d "username=abc&rememberme=on&authtype=intenal""https..somemdpoint"

我有一个接受 3 个值的方法

function makePostRequest(username string, rememberme string, authtype string, endpoint string) {
// post a curl request.
}

如果我为它提供参数,我很难找到任何可以返回查询字符串的库。

我试过这样做:

q := req.URL.Query()
q.Add("api_key", "key_from_environment_or_flag")
q.Add("another_thing", "foobar")
fmt.Print(q)

但意识到它实际上返回的是 Values,这是一个映射,所以它不好。

golang 中有创建 queryString 的方法吗?

最佳答案

你几乎明白了。调用Values.Encode()以 URL 编码形式对 map 进行编码。

fmt.Print(q.Encode()) // another_thing=foobar&api_key=key_from_environment_or_flag

直接创建 map 而不是使用 req.URL.Query() 返回空 map :

values := url.Values{}
values.Add("api_key", "key_from_environment_or_flag")
values.Add("another_thing", "foobar")
query := values.Encode()

使用 strings.NewReader(query) 为 POST 请求主体获取 io.Reader

关于http - 如何在golang中生成查询字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62975873/

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