登录
首页 >  Golang >  Go教程

有关Go语言拼接URL路径的方法

来源:亿速云

时间:2023-03-09 12:18:49 185浏览 收藏

一分耕耘,一分收获!既然打开了这篇文章《有关Go语言拼接URL路径的方法》,就坚持看下去吧!文中内容包含go语言、url等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

这篇文章主要介绍“有关Go语言拼接URL路径的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“有关Go语言拼接URL路径的方法”文章能帮助大家解决问题。

Go语言拼接URL路径有多种方法建议用ResolveReference。

JoinPath

JoinPath会把多个多个路径合并成一个路径,并且处理../和./,多个//合并成单个/。

package main

import (
    "fmt"
    "net/url"
)

func main() {
    u1 := "http://example.com/directory/"
    u2 := "../../..//search?q=dotnet"
    u3 := "/dir1/dir2/search?q=dotnet"

    j1, _ := url.JoinPath(u1, u2)
    j2, _ := url.JoinPath(u1, u3)
    fmt.Println(j1)
    // http://example.com/search%3Fq=dotnet
    fmt.Println(j2)
    // http://example.com/directory/dir1/dir2/search%3Fq=dotnet
}

ResolveReference

ResolveReference会处理绝对路径和相对路径。

package main

import (
    "fmt"
    "log"
    "net/url"
)

func main() {
    u1, _ := url.Parse("../../..//search?q=dotnet")
    u2, _ := url.Parse("/dir1/dir2/search?q=dotnet")
    base, err := url.Parse("http://example.com/directory/")
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(base.ResolveReference(u1))
    // http://example.com/search?q=dotnet
    fmt.Println(base.ResolveReference(u2))
    // http://example.com/dir1/dir2/search?q=dotnet
}

path.Join

path主要是对斜杠放个的路径。

package main

import (
    "fmt"
    "log"
    "net/url"
    "path"
)

func main() {
    u, err := url.Parse("http://example.com/test/")
    if err != nil {
        log.Fatal(err)
    }
    u.Path = path.Join(u.Path, "../bar.html")
    s := u.String()
    fmt.Println(s) // http://example.com/bar.html

}

关于“有关Go语言拼接URL路径的方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注golang学习网行业资讯频道,小编每天都会为大家更新不同的知识点。

今天带大家了解了go语言、url的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:亿速云 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>