在go语言中实现解析或分解URL示例代码
Go  /  管理员 发布于 1年前   408
go语言本身提供了一种分解和解析URL的简单方法。
它有一个非常整洁的软件包(http://golang.org/pkg/net/url),可以处理 URL,
并允许开发人员将 URL 分解成有意义的片段进行处理。
下面的代码将演示如何轻松地解析原始URL:
package main
import (
"fmt"
"net/url"
"strings"
)
func main() {
rawURL := "http://username:[email protected]:8080/testpath/?q=socketloop.com#TestFunc"
fmt.Println("URL : ", rawURL)
// 解析 URL 并确保没有错误。
url, err := url.Parse(rawURL)
if err != nil {
panic(err)
}
// 参见 http://golang.org/pkg/net/url/#URL
// scheme://[userinfo@]host/path[?
// 获得方案
fmt.Println("方案 : ", url.Scheme)
// 获取用户信息
fmt.Println("用户名 : ", url.User.Username())
password, set := url.User.Password()
fmt.Println("密码 : ", password)
fmt.Println("密码设置 : ", set)
// 获取主机
fmt.Println("原始主机 : ", url.Host)
// 获取端口号,拆分主机
hostport := strings.Split(url.Host, ":")
host := hostport[0]
port := hostport[1]
fmt.Println("主机 : ", host)
fmt.Println("端口 : ", port)
// 获取路径
fmt.Println("路径 : ", url.Path)
// 获取 RawQuery
fmt.Println("原始查询 ", url.RawQuery)
// 获取片段
fmt.Println("片段 : ", url.Fragment)
}
输出 :
URL : http://username:[email protected]:8080/testpath/?q=socketloop.com#TestFunc
方案 : http
用户名 : 用户名
密码 : password
密码设置 : true
原始主机 : searchengine.com:8080
主机 : searchengine.com
端口 : 8080
路径 : /testpath/
原始查询 q=socketloop.com
片段 : TestFunc
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号