URL

概述 #

调用 net/url 包即可。

例子 #

构造 URL #

package main

import (
	"fmt"
	"net/url"
)

func main() {
	u := url.URL{}
	u.Scheme = "https"
	u.Host = "go.dev"
	u.Path = "/learn/doc"

	values := u.Query()
	values.Add("hello", "world")

	u.RawQuery = values.Encode()

	fmt.Printf("URL = %s\n", u.String())
}

// $ go run main.go
// 输出如下
/**
  URL = https://go.dev/learn/doc?hello=world
*/

解析 URL #

package main

import (
	"fmt"
	"net/url"
)

func main() {
	s := "https://golang.org"

	u, err := url.Parse(s)
	if err != nil {
		panic(err)
	}

	fmt.Println(u.Scheme)
	fmt.Println(u.Host)
}

// $ go run main.go
// 输出如下
/**
  https
  golang.org
*/

解析 URL (带参数) #

package main

import (
	"fmt"
	"net/url"
)

func main() {
	s := "https://go.dev/learn/doc?hello=world"
	u, err := url.Parse(s)
	if err != nil {
		panic(err)
	}

	fmt.Println(u.Scheme)
	fmt.Println(u.Host)
	fmt.Println(u.Path)

	fmt.Printf("Param hello = %s\n", u.Query().Get("hello"))
}

// $ go run main.go
// 输出如下
/**
  https
  go.dev
  /learn/doc
  Param hello = world
*/

转载申请

本作品采用 知识共享署名 4.0 国际许可协议 进行许可,转载时请注明原文链接,图片在使用时请保留全部内容,商业转载请联系作者获得授权。

© 蛮荆 | 陕公网安备 61011302001681 号 | 陕ICP备2023004378号-1 | Rendered by Hugo