第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將 URL 路徑與 path.Join() 結(jié)合

將 URL 路徑與 path.Join() 結(jié)合

Go
達(dá)令說 2021-12-06 19:45:55
在 Go 中有沒有辦法像使用文件路徑一樣組合 URL 路徑path.Join()?當(dāng)我使用時path.Join("http://foo", "bar"),我得到http:/foo/bar.參見Golang Playground。
查看完整描述

3 回答

?
寶慕林4294392

TA貢獻(xiàn)2021條經(jīng)驗 獲得超8個贊

函數(shù) path.Join 需要一個路徑,而不是一個 URL。解析 URL 以獲取路徑并加入該路徑:


u, err := url.Parse("http://foo")

u.Path = path.Join(u.Path, "bar.html")

s := u.String() // prints http://foo/bar.html

playground example


如果您組合的不僅僅是路徑(例如方案或主機(jī))或字符串多于路徑(例如它包括查詢字符串),則使用ResolveReference。


查看完整回答
反對 回復(fù) 2021-12-06
?
慕虎7371278

TA貢獻(xiàn)1802條經(jīng)驗 獲得超4個贊

net/url 包中的 ResolveReference()


接受的答案不適用于包含 .html 或 .img 等文件結(jié)尾的相對 url 路徑。ResolveReference() 函數(shù)是 go 中加入 url 路徑的正確方法。


package main


import (

    "fmt"

    "log"

    "net/url"

)


func main() {

    u, err := url.Parse("../../..//search?q=dotnet")

    if err != nil {

        log.Fatal(err)

    }

    base, err := url.Parse("http://example.com/directory/")

    if err != nil {

        log.Fatal(err)

    }

    fmt.Println(base.ResolveReference(u))

}


查看完整回答
反對 回復(fù) 2021-12-06
?
千萬里不及你

TA貢獻(xiàn)1784條經(jīng)驗 獲得超9個贊

一個簡單的方法是修剪您不想要的 / 并加入。這是一個示例函數(shù)


func JoinURL(base string, paths ...string) string {

    p := path.Join(paths...)

    return fmt.Sprintf("%s/%s", strings.TrimRight(base, "/"), strings.TrimLeft(p, "/"))

}

用法是


b := "http://my.domain.com/api/"

u := JoinURL(b, "/foo", "bar/", "baz")

fmt.Println(u)

這消除了檢查/返回錯誤的需要


查看完整回答
反對 回復(fù) 2021-12-06
  • 3 回答
  • 0 關(guān)注
  • 374 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號