golang怎么验证URL

  • By v2ray节点

  • 2024-04-10 19:43:02

  • 评论

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>


v2ray节点购买