2014-10-04 100 views

回答

1

要向網址添加參數,您需要使用Values()

也就是說,沒有任何參數的URL可以具有它的 '價值' 的長度設置爲0:

if len(r.URL.Query()) == 0 { 
} 

這應該是相同the comments建議通過Dewy Brotor.URL.RawQuery

if r.URL.RawQuery == "" { 
} 

或者您可以檢查Values()地圖中的密鑰「id」是否存在。

if r.URL.Query().Get("id") == "" { 
    //do something here 
} 
+0

我用了一個簡單的r.URL.Query(),它給了我一個地圖。但是,如果r.URL.Query!= nil不起作用。 – user3918985 2014-10-04 04:42:06

+0

@ user3918985您是否嘗試過'r.URL.Values()',看看它是否更好? – VonC 2014-10-04 05:18:57

+0

yup,我得到這個錯誤:r.URL.Values未定義(類型* url.URL沒有字段或方法值) – user3918985 2014-10-04 05:30:28

2
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

+0

@DewyBroto完成 – jmaloney 2014-10-06 16:05:07