使用方式

URL参数构建

  1. package main
  2. import (
  3. "fmt"
  4. "github.com/gogf/gf/v2/encoding/gurl"
  5. "net/url"
  6. )
  7. func main() {
  8. // 构建url参数
  9. values := url.Values{}
  10. values.Add("name", "gopher")
  11. values.Add("limit", "20")
  12. values.Add("page", "7")
  13. // 生成URL编码查询字符串 limit=20&name=gopher&page=7
  14. urlStr := gurl.BuildQuery(values)

URL参数编码与解码

  1. package main
  2. import (
  3. "fmt"
  4. "github.com/gogf/gf/v2/encoding/gurl"
  5. "log"
  6. )
  7. func main() {
  8. // 编码对字符串进行转义,以便可以将其安全地放置在URL查询中。
  9. encodeStr := gurl.Encode("limit=20&name=gopher&page=7")
  10. fmt.Println(encodeStr)
  11. // 进行URL解码
  12. decodeStr, err := gurl.Decode("limit%3D20%26name%3Dgopher%26page%3D7")
  13. if err != nil {
  14. log.Fatal(err)
  15. }
  16. fmt.Println(decodeStr)

执行后,输出结果为:

解析URL

  1. import (
  2. "fmt"
  3. "github.com/gogf/gf/v2/encoding/gurl"
  4. "log"
  5. )
  6. func main() {
  7. // 解析URL并返回其组件
  8. data, err := gurl.ParseURL("http://127.0.0.1:8199/goods?limit=20&name=gopher&page=7", -1)
  9. if err != nil {
  10. log.Fatal(err)
  11. }
  12. fmt.Println(data)
  13. fmt.Println(data["host"])
  14. fmt.Println(data["query"])
  15. fmt.Println(data["path"])
  16. fmt.Println(data["scheme"])
  17. }

执行后,输出结果为: