如何在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`)