Go語(yǔ)言拼接URL路徑的三種方法
Go語(yǔ)言拼接URL路徑有多種方法建議用ResolveReference。
JoinPath
JoinPath會(huì)把多個(gè)多個(gè)路徑合并成一個(gè)路徑,并且處理../和./,多個(gè)//合并成單個(gè)/。
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會(huì)處理絕對(duì)路徑和相對(duì)路徑。
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主要是對(duì)斜杠放個(gè)的路徑。
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 }
參考
https://pkg.go.dev/net/url@go1.19beta1#JoinPath
http://doc.golang.ltd/pkg/net_url.htm
到此這篇關(guān)于Go語(yǔ)言拼接URL路徑的三種方法的文章就介紹到這了,更多相關(guān)Go語(yǔ)言拼接URL路徑內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解如何使用Go語(yǔ)言進(jìn)行文件監(jiān)控和通知
在Go語(yǔ)言中,文件監(jiān)控通常涉及到文件系統(tǒng)事件的監(jiān)聽(tīng),文件或目錄的狀態(tài)發(fā)生變化(如創(chuàng)建、刪除、修改等)時(shí),你的程序需要得到通知,所以本文給大家介紹了如何使用Go語(yǔ)言進(jìn)行文件監(jiān)控和通知,需要的朋友可以參考下2024-06-06golang通過(guò)http訪問(wèn)外部網(wǎng)址的操作方法
這篇文章主要介紹了golang通過(guò)http訪問(wèn)外部網(wǎng)址的操作方法,分為?get方式訪問(wèn)外部的接口,Post方式請(qǐng)求外部接口,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02go local history本地歷史恢復(fù)代碼神器
這篇文章主要為大家介紹了go local history本地歷史恢復(fù)代碼神器的使用功能詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01Go語(yǔ)言實(shí)現(xiàn)新春祝福二維碼的生成
二維碼現(xiàn)在是隨處度可以看到,買東西,支付,添加好友只要你掃一掃就能完成整個(gè)工作,簡(jiǎn)單且方便。所以利用這個(gè)新春佳節(jié)做一個(gè)帶著新春祝福的二維碼吧2023-02-02