Golang解析、验证、修改URL之Host、Port、Path – Python量化投资

Golang解析、验证、修改URL之Host、Port、Path

URL解析验证问题 net.ParseIP() 只能解析不带冒号以及端口号的IP4/IP6 ✔: 127.0.0.1 、 2001:db8::68 ✖: 127.0.0.1:8080 、 www.baidu.com url.Parse() 最好只用来解析标准 URL ,不能用来验证 URL 的正确性 func main() {
IP1 := “www.baidu.com”
IP2 := “127.0.0.1”
IP3 := “127.0.0.1:8080”
parsedIP1 := net.ParseIP(IP1)
parsedIP2 := net.ParseIP(IP2)
parsedIP3 := net.ParseIP(IP3)
fmt.Println(“net.ParseIP: “, parsedIP1, parsedIP2, parsedIP3)
fmt.Println()
Url1 := “127.0.0”
Url2 := “abc”
Url3 := “127.0.0.1:8080”
Url4 := “http://127.0.0.1:8080/url”
parsedUrl1, err := url.Parse(Url1)
if err != nil {
fmt.Println(“Error: “, err)
}
parsedUrl2, err := url.Parse(Url2)
if err != nil {
fmt.Println(“Error: “, err)
}
parsedUrl3, err := url.Parse(Url3)
if err != nil {
fmt.Println(“Error: “, err)
}
parsedUrl4, err := url.Parse(Url4)
if err != nil {
fmt.Println(“Error: “, err)
}
fmt.Println(“1: “, parsedUrl1, “2: “, parsedUrl2, “3: “, parsedUrl3, “4: “, parsedUrl4)
}
/*
输出结果:
net.ParseIP: 127.0.0.1
Error: parse 127.0.0.1:8080: first path segment in URL cannot contain colon
1: 127.0.0 2: abc 3: 4: http://127.0.0.1:8080/url
*/ 正确的URL验证方式 go get github.com/asaskevich/govalidator govalidator.IsURL() 获取并修改URL之Host、Port、Path func main() {
rawUrl := “http://127.0.0.1:8080/url/123”
changeHost := “192.168.1.1”
newUrl, _ := url.Parse(rawUrl)
// Host
newUrlHost := newUrl.Hostname()
// Port
newUrlPort := newUrl.Port()
// Path
newUrlPath := newUrl.Path
// URL类型转string
stringUrl := newUrl.String()
// 更改URl Host
newUrl.Host = changeHost + “:” + newUrl.Port()
fmt.Println(newUrlHost, newUrlPort, newUrlPath, stringUrl, newUrl)
} 其他相关方法: Host、Port net.SplitHostPort() ==> Host、Port、error u := strings.Split(url, “:”) ==> Host := u[0] Path url := http://www.a.com/123 ==> base := path.Base(url) fmt.Println(base) ==> 123
https://www.cnblogs.com/GaiHeiluKamei/p/11469030.html

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
Python
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论