Go 中的 URL 构建器/查询构建器

新手上路,请多包涵

我有兴趣通过浏览器或 CLI 动态获取用户的参数作为输入,将这些参数传递给 REST API 调用,从而使用 Go 动态构建 URL,这最终会为我获取一些 JSON 数据。

我想知道 Go 中的一些技巧可以帮助我做到这一点。我认为一种理想的方法是使用映射并用参数键和相应的值填充它,然后迭代它并将它附加到 URL 字符串。但是当谈到动态获取参数并填充地图时,我不太确定如何在 Go 中执行此操作。有人可以用 Go 中的一些代码片段帮助我吗?

请求示例:

 http://<IP>:port?api=fetchJsonData&arg1=val1&arg2=val2&arg3=val3.....&argn=valn

原文由 psbits 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 444
2 个回答

已经有 url.URL 可以为您处理这类事情。

对于 http 处理程序(传入请求),它是 http.Request 的一部分(使用 req.URL.Query() 访问它)。

官方 文档 中的一个很好的例子:

 u, err := url.Parse("http://bing.com/search?q=dotnet")
if err != nil {
    log.Fatal(err)
}
u.Scheme = "https"
u.Host = "google.com"
q := u.Query()
q.Set("q", "golang")
u.RawQuery = q.Encode()
fmt.Println(u)

原文由 OneOfOne 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏