我試着查找它,但找不到已經回答的問題。如何在Go中獲取URL
如何在Go中獲取URL的主機部分?
例如,
如果用戶在地址欄中輸入http://localhost:8080,我想從URL中提取「localhost」。
我試着查找它,但找不到已經回答的問題。如何在Go中獲取URL
如何在Go中獲取URL的主機部分?
例如,
如果用戶在地址欄中輸入http://localhost:8080,我想從URL中提取「localhost」。
Go已經建在圖書館裏,可以爲你做。
package main
import "fmt"
import "net"
import "net/url"
func main() {
s := "http://localhost:8080"
u, err := url.Parse(s)
if err != nil {
panic(err)
}
host, _, _ := net.SplitHostPort(u.Host)
fmt.Println(host)
}
如果你正在談論從*http.Request
提取主機,你可以做到以下幾點:
func ExampleHander(w http.ResponseWriter, r *http.Request) { host := r.Host // This is your host (and will include port if specified) }
如果你只是想而不端口訪問主機部分部分您可以執行以下操作:
func ExampleHandler(w http.ResponseWriter, r *http.Request) { host, port, _ := net.SplitHostPort(r.Host) }
在過去的一個工作,你也必須導入net
Go有精彩的文檔,我也建議考慮看看是:net/http
在上面的例子中,我如何獲得當前用戶輸入的URL訪問頁面? – abel
這取決於您如何編寫服務器。 但可能這個答案可以幫助你:https://stackoverflow.com/a/24519179/170961 – matiit