如何代表沒有查詢字符串的路徑?轉:代表沒有查詢字符串的路徑
例如:
www.example.com/user
而不是www.example.com/user?id=1
下面的代碼沒有工作:
轉到:
if r.URL.Path[4:] != "" {
//do something
}
如何代表沒有查詢字符串的路徑?轉:代表沒有查詢字符串的路徑
例如:
www.example.com/user
而不是www.example.com/user?id=1
下面的代碼沒有工作:
轉到:
if r.URL.Path[4:] != "" {
//do something
}
要向網址添加參數,您需要使用Values()
。
也就是說,沒有任何參數的URL可以具有它的 '價值' 的長度設置爲0:
if len(r.URL.Query()) == 0 {
}
這應該是相同the comments建議通過Dewy Broto的r.URL.RawQuery
:
if r.URL.RawQuery == "" {
}
或者您可以檢查Values()
地圖中的密鑰「id
」是否存在。
if r.URL.Query().Get("id") == "" {
//do something here
}
func main() {
req, err := http.NewRequest("GET", "http://www.example.com/user?id=1", nil)
if err != nil {
log.Fatal(err)
}
// get host
fmt.Printf("%v\n", req.Host) // Output: www.example.com
// path without query string
fmt.Printf("%v\n", req.URL.Path) // Output: /user
// get query string value by key
fmt.Printf("%v\n", req.URL.Query().Get("id")) // Output: 1
// raw query string
fmt.Printf("%v\n", req.URL.RawQuery) // Output: id=1
}
轉到play
@DewyBroto完成 – jmaloney 2014-10-06 16:05:07
我用了一個簡單的r.URL.Query(),它給了我一個地圖。但是,如果r.URL.Query!= nil不起作用。 – user3918985 2014-10-04 04:42:06
@ user3918985您是否嘗試過'r.URL.Values()',看看它是否更好? – VonC 2014-10-04 05:18:57
yup,我得到這個錯誤:r.URL.Values未定義(類型* url.URL沒有字段或方法值) – user3918985 2014-10-04 05:30:28