irpas技术客

Go+ URL 解析_ζ小菜鸡_go 解析url参数

网络投稿 965

目录

Go+ 概述

正文

导入包常见的 URL 实例解析 URL 不同字段具体实例演示
Go+ 概述

Go+ 是一门融合工程开发的 Go、数据科学领域的 Python、编程教学领域的 Scratch,以 Python 之形结合 Go 之心,让工程师处理数据不需要学习新的开发语言,让初学者学习编程、开发作品的门槛更低的编程语言。


正文

Go+ 提供了统一的对 URL 进行字段分割解析的方法,使用起来非常简单。接下来我们就来了解一下这部分的一些内容。

导入包

Go+ 在解析 URL 中的字段时,一般使用的工具库是 net/url 包,导入方式如下:

import ( "net/url" )

常见的 URL 实例

URL 也被称为统一资源定位符,用来表示某个地址的唯一标识,日常工作和生活中,我们经常会见到各种各样的 URL 实例,比如

百度地址:"·/"

数据库地址:"mongodb://liuzhen007:123456@gop.com:1024/api/check?id=123#f"

视频播放地址:"v.qq.com/x/video/mzc…"

解析 URL 不同字段

下面介绍不同字段应该如何获取,具体内容如下:

协议:u.Scheme

用户信息:u.User

用户名: u.User.Username()

用户秘密:u.User.Password()

域名或者IP(带端口):u.Host

分离域名或者IP、端口:net.SplitHostPort(u.Host)

API路由:u.Path

片段信息:u.Fragment

Query参数:u.RawQuery

具体实例演示

接下来,我们拿数据库地址的 URL 进行演示,看看 Go+ 是如何解析 URL 中的参数的,示例代码如下:

package main import ( "net" "net/url" ) s := "mongodb://liuzhen007:123456@gop.com:1024/api/check?id=123#f" u, err := url.Parse(s) if err != nil { panic(err) } println("协议:", u.Scheme) println("用户信息:", u.User) println("用户名:", u.User.Username()) p, _ := u.User.Password() println("用户秘密:", p) println("域名或者IP(带端口):", u.Host) host, port, _ := net.SplitHostPort(u.Host) println("域名或者IP:", host) println("端口:", port) println("API路由:", u.Path) println("片段信息:", u.Fragment) println("Query参数:", u.RawQuery) m, _ := url.ParseQuery(u.RawQuery) println("Query参数(map形式):", m) println("Query参数id的值:", m["id"][0])

代码执行结果:

协议: mongodb 用户信息: liuzhen007:123456 用户名: liuzhen007 用户秘密: 123456 域名或者IP(带端口): gop.com:1024 域名或者IP: gop.com 端口: 1024 API路由: /api/check 片段信息: f Query参数: id=123 Query参数(map形式): map[id:[123]] Query参数id的值: 123

?



1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #go #解析url参数 #是一门融合工程开发的 #Go数据科学领域的 #Python编程教学领域的 #Scratch以 #Python