Avatar ·

如何在Go中正确执行GET请求并构建QueryString?

大家好!我是Go新手,正在尝试向需要query string参数的API发送GET请求。例如,我需要向 `https://api.example.com/search?q=golang&page=1&limit=10` 发送请求。 我尝试过手动拼接字符串,但看起来既糟糕又不正确: ```go package main import ( "fmt" "io/ioutil" "net/http" ) func main() { url := "https://api.example.com/search?q=" + "golang" + "&page=" + "1" + "&limit="10" resp, err := http.Get(url) if err != nil { panic(err) } defer resp.Body.Close() body, _ := ioutil.ReadAll(resp.Body) fmt.Println(string(body)) } ``` 首先,这不安全:如果参数 `q` 中包含空格或特殊字符(例如 `golang & go`),URL会出错。其次,代码看起来杂乱且难以维护,尤其是当参数很多时。 我知道在其他语言中(例如Python有 `urllib.parse`)