gpt4 book ai didi

go - net/url 包根据请求查询参数添加换行符

转载 作者:行者123 更新时间:2023-12-01 22:43:48 25 4
gpt4 key购买 nike

关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

2年前关闭。




Improve this question




我正在调用 Songkick 的 API,将 API key 和页码参数编码如下:

    Url, err := url.Parse("https://api.songkick.com")
Url.Path += "/api/3.0/metro_areas/" + myArea + "/calendar.json"
parameters := url.Values{}
parameters.Add("apikey", myApiKey)
parameters.Add("page", myPage)
Url.RawQuery = parameters.Encode()

req, err := http.NewRequest("GET", Url.String(), nil)

一切都很好,只是它在我的 apiKey 参数中添加了一个额外的 %0A ,结果查询如下所示:
http://api.songkick.com/api/3.0/metro_areas/28714/calendar.json?apikey=myKey%0A&page=12

我一直在关注 中的代码网络/网址 包,但我不知道为什么会这样。这可能发生的唯一地方是在转义函数中的 switch case shouldEscape(c, mode) 内,但是阅读文档,这不应该是我的情况。

有人对此有提示吗?

只有当我在基于图像 golang:latest 的 Docker 容器中运行它时才会发生这种情况。如果我从本地 PC 运行它,它工作正常。

这就是我读取文件的方式:
bs, err := ioutil.ReadFile("apiKeyFile.txt")

if err != nil {
fmt.Println("Error:", err)
os.Exit(1)
}

return string(bs)

最佳答案

myApiKey有一个换行符,并且该换行符编码在查询字符串中。

通过删除不需要的换行符来解决问题。这可以通过使用 bytes.TrimSpace 修剪文件数据中的前导和尾随空格来完成。 .

bs, err := ioutil.ReadFile("apiKeyFile.txt")
if err != nil {
fmt.Println("Error:", err)
os.Exit(1)
}
return string(bytes.TrimSpace(bs))

关于go - net/url 包根据请求查询参数添加换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60031039/

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