golang怎么验证URL
URL 代表唯一资源定位符,是 URI 的子类型(尽管许多人交替使用这两个术语)。
URL 是对网络资源的引用,通常被视为网址(例如 https://golang.org/project/)
Go 标准库中的原生包满足我们的需求。该 net/url 包 https://golang.org/pkg/net/url/
可以使用 url.ParseRequestURI 它来验证 URL
func ParseRequestURI(rawurl string) (*URL, error)
ParseRequestURI 将 rawurl 解析为 URL 结构。
还有另一种方法应该用于解析 URL 字符串,但有一些注意事项。它允许相对 URL,使验证更加宽松。它是 url.Parse
func Parse(rawurl string) (*URL, error)
Parse 将 rawurl 解析为 URL 结构。
rawurl 可以是相对路径或绝对路径。
解析 URL 示例
如何使用 ParseRequestURI在 Go 中解析和验证 URL 的示例
package main
import (
"log"
"net/url"
)
func main() {
u, err := url.ParseRequestURI("hi/there?")
log.Printf("hi/there?: err=%+v url=%+v\n", err, u)
u, err = url.ParseRequestURI("http://golang.cafe/")
log.Printf("hi/there?: err=%+v url=%+v\n", err, u)
u, err = url.ParseRequestURI("http://golang.org/index.html?#page1")
log.Printf("hi/there?: err=%+v url=%+v\n", err, u)
u, err = url.ParseRequestURI("golang.org")
log.Printf("hi/there?: err=%+v url=%+v\n", err, u)
}
输出以下内容
2024/4/10 19:00:00 hi/there?: err=parse hi/there?: invalid URI for request url=<nil>
2024/4/10 19:00:00 hi/there?: err=<nil> url=http://golang.cafe/
2024/4/10 19:00:00 hi/there?: err=<nil> url=http://golang.org/index.html?#page1
2024/4/10 19:00:00 hi/there?: err=parse golang.org: invalid URI for request url=<nil>
评论