登录
首页 >  Golang >  Go问答

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

来源:Golang技术栈

时间:2023-04-17 20:02:50 205浏览 收藏

一分耕耘,一分收获!既然打开了这篇文章《Go 中的 URL 构建器/查询构建器》,就坚持看下去吧!文中内容包含golang等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

问题内容

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

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

请求示例:

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

正确答案

已经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)

到这里,我们也就讲完了《Go 中的 URL 构建器/查询构建器》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于golang的知识点!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>