如何使用 Go 获取 URL 的参数,以及使用时的问题

这篇具有很好参考价值的文章主要介绍了如何使用 Go 获取 URL 的参数,以及使用时的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Go 获取 URL 参数也很容易,但是由于 Go 有严格的数据类型和错误管理,所以在使用时会些微有些复杂。所以本文不仅会讲如何获取 URL 的参数,也会讲在使用时的一些问题。

首先假设 URL 是https://www.example.com/?keyword=abc&id=12

其他语言一般这个时候就是导入包了,但是 Go 的包管理很严格,所以建议你在输入完下列代码后,在安装 VSCode 中使用保存快捷键(如 Command + S 键)或者在终端中goimports工具来自动补全包,这样就可以保证一定没有错误。因为虽然现在一般使用"net/url"或者"net/http",但某些情况可能不一样,或者未来 Go 会对一些包进行改名,这都会导致包的名称不一定,所以“授人以鱼不如授人以渔”。

接下来需要使用url.Parse()来解析上面的 URL,以及设置错误信息来方便 URL 解析出错的时候进行处理,最后声明变量q来方便后续获取和操作参数:

u, err := url.Parse("https://www.example.com/?keyword=abc&id=12")
if err != nil {
	log.Fatal(err)
}
q := u.Query()

这里u.Query()会进行一个映射,将参数名和值对应上,由于可能会有多个相同的参数名,所以这里的“键值对”的“值”是一个字符串数组。此时就可以通过q来获取参数了,如下:

fmt.Println(q["keyword"])
fmt.Println(q["id"])

输出结果为:

[abc]
[12]

下面说说需要注意的几个问题:

如何将参数字符串转换成整数

上文提到这里的q["keyword"]q["id"]实际上是个字符串数组,所以如果你想将上面id的值12当成整数进行操作,那么就得使用下面的方式(如果你有多个id参数的话,那么就根据自己情况选择):

id := strconv.Atoi(q["id"][0])

这时候变量id的值就是整数12

判断是否有参数或有某个参数

一般参数的使用方法就是用来计算或判断,但是如果我们要判断有没有参数部分或者有没有某个参数该怎么办呢?

有两种方案:
第一种是通过判断q或某个参数对应的值是否为空,如下:

//判断是否有参数
if q != nil {
	...
}
//判断是否有id这个参数
if q["id"] != nil {
	...
}

第二种是通过len()测量q或某个参数对应值的长度,如下:

//判断是否有参数
if len(q) != 0 {
	...
}
//判断是否有id这个参数
if len(q["id"]) != 0 {
	...
}

希望能帮到有需要的人~文章来源地址https://www.toymoban.com/news/detail-647307.html

到了这里,关于如何使用 Go 获取 URL 的参数,以及使用时的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (超详细)完美解决如何使用Zotero引用文献以及如何去掉url链接

    一、Zotero怎么下载以及如何在chrome浏览器中使用zotero插件 首先,下载Zotero是很容易的,直接搜索官网即可下载,官网给出两个下载选择,单独下载、带zotero插件一起下载。如下图所示(zotero下载官网链接): 当然最好的选择时带zotero插件一起下载,至于为什么需要插件,后面会

    2024年01月18日
    浏览(45)
  • Java获取URL地址中传递的参数

    一、 Java获取URL地址中传递的参数 二、获取请求的URL地址 三、获取请求的IP地址 四:判断字符串是否能够转换成指定格式的日期

    2024年02月16日
    浏览(46)
  • 三种获取URL参数值的方法

    在 URL 中,查询参数字符串值通常提供有关请求的信息,例如搜索参数或正在使用的对象的 ID。如果在前端处理任何业务或请求逻辑,了解如何从 URL 中检索查询字符串值非常重要。本文分享三种从 URL 获取参数的方法。 URLSearchParams 除 IE 11 之外的所有主要浏览器版本都支持该

    2024年02月16日
    浏览(39)
  • 获取Layui iframe页面的url参数

    弹出layui iframe页面 iframe页面中获取参数

    2024年02月12日
    浏览(56)
  • js获取当前域名、Url、相对路径和参数

    由于获取到的当前域名不包括 http://,所以把获取到的域名赋给 a 标签的 href 时,别忘了加上 http://,否则单击链接时导航会出错。 浏览器地址栏显示的是什么,获取到的 url 就是什么。 首先获取 Url,然后把 Url 通过 // 截成两部分,再从后一部分中截取相对路径。如果截取到

    2024年02月16日
    浏览(55)
  • Nginx 获取自定义请求header头和URL参数

    在 ngx_lua 中访问 Nginx 内置变量 ngx.var.http_HEADER 即可获得请求头HEADER的内容。 在 nginx配置中,通过$http_HEADER 即可获得请求头HEADER的内容。 案例: 在nginx的location配置中,在获取header配置时, 须要在header名称前面加上固定前缀“http_“,并将header名称中的“-”中划线变为下划线

    2024年02月04日
    浏览(37)
  • keycloak~RequiredActionProvider中获取表单认证前URL的参数

    在keycloak中,我们在进行brower浏览器的表单认证时,一般在跳到本页面时,URL上会有redirect_uri这种参数,用来告诉keycloak,在认证成功后的跳转地址,你在表单认证控制器中,可以通过 context.getHttpRequest().getUri().getQueryParameters().getFirst(\\\"redirect_uri\\\") 进行获取,而当你为brower认证流

    2024年04月26日
    浏览(41)
  • 小程序Url Link跳转怎么获取query参数?

    我是通过这种方式接收参数的,如果想验证可以通过编译器模拟:

    2024年02月17日
    浏览(39)
  • 微信小程序页面跳转时URL获取不到参数

    原因: 在跳转的url参数中添加了包含特殊字符?的情况下 ,会出现参数丢失的情况 1.最近在小程序开发过程中,发现之前可用的某个功能字段展示为了undefined,后来查看参数发现 页面跳转时参数丢失了 导致的 此时获取到的参数都是正常的,在上线一段时间后,其它同学在 图

    2024年02月11日
    浏览(68)
  • 《web应用技术》第三次课后练习-使用postman练习参数的获取。

    Postman也是一款功能强大的接口测试工具,它支持发送任何类型的HTTP请求(GET、POST、PUT、DELETE等),并能附带任何数量的参数和Headers。 目录 一、简单参数 二、实体参数 1.简单的实体参数 2.复杂的实体参数 三、数组集合参数  1.数组参数 2.集合参数  四、日期参数 五、JSON参

    2024年04月25日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包