如何检查字符串是否是 Golang 中的有效 URL?
在某些情况下,我们想知道我们从http请求中以字符串形式获得的URL是否有效。在这种情况下,可以使用Go标准库的net/url包提供的两个函数。
示例1
第一个基本情况是检查URL是否结构良好且有效,为此,我们可以使用ParseRequestURI()URL包的功能。
考虑下面显示的代码。
package main
import (
"fmt"
"net/url"
)
func main() {
u, err := url.ParseRequestURI("http://golangcode.com")
if err != nil {
panic(err)
}
fmt.Println(u)
}输出结果如果我们在上面的代码上运行gorunmain.go命令,那么我们将在终端中得到以下输出。
http://golangcode.com
在上面的代码中,我们传递了一个包含主机和方案的有效URL,如果我们将其更改为无效的URL,我们将收到错误消息。
示例2
考虑下面显示的代码。
package main
import (
"fmt"
"net/url"
)
func main() {
u, err := url.ParseRequestURI("golangcode.com")
if err != nil {
panic(err)
}
fmt.Println(u)
}输出结果如果我们在上面的代码上运行gorunmain.go命令,那么我们将在终端中得到以下输出。
panic: parse "golangcode.com": invalid URI for request
使用时有一个问题ParseRequestURI(),就是认为URL是在HTTP请求中收到的,这会导致一些不一致。
如果我们将“Test:Test”字符串作为参数传递给ParseRequestURI()函数,则它不会产生任何错误。因此,更好的选择是将Parse函数与ParseRequestURI().
示例3
考虑下面显示的代码。
package main
import (
"fmt"
"net/url"
)
func main() {
_, err := url.ParseRequestURI("http://www.google.com")
if err != nil {
panic(err)
}
u, err := url.Parse("http://www.google.com")
if err != nil ||u.Scheme== "" ||u.Host== "" {
panic(err)
}
fmt.Println("All ok")
}输出结果如果我们在上面的代码上运行gorunmain.go命令,那么我们将在终端中得到以下输出。
All Ok
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短