Go+ 概述
Go+ 是一门融合工程开发的 Go、数据科学领域的 Python、编程教学领域的 Scratch,以 Python 之形结合 Go 之心,让工程师处理数据不需要学习新的开发语言,让初学者学习编程、开发作品的门槛更低的编程语言。
正文
Go+ 提供了统一的对 URL 进行字段分割解析的方法,使用起来非常简单。接下来我们就来了解一下这部分的一些内容。
导入包
Go+ 在解析 URL 中的字段时,一般使用的工具库是 net/url 包,导入方式如下:
import (
"net/url"
)
常见的 URL 实例
URL 也被称为统一资源定位符,用来表示某个地址的唯一标识,日常工作和生活中,我们经常会见到各种各样的 URL 实例,
解析 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"
)
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(带端口): :1024
域名或者IP:
端口: 1024
API路由: /api/check
片段信息: f
Query参数: id=123
Query参数(map形式): map[id:[123]]
Query参数id的值: 123