在 Go 中,可以使用 http.Client 來實作傳送帶有查詢字串參數的 GET 請求。然而,這個任務可能並不像看起來那麼簡單。
要克服這個挑戰,您可以利用 net/url 套件。它的 Values 類型提供了建構查詢字串的便捷機制。考慮以下範例:
import ( "fmt" "log" "net/http" "os" "net/url" ) func main() { // Create a new request object with an initial URL. req, err := http.NewRequest("GET", "http://api.themoviedb.org/3/tv/popular", nil) if err != nil { log.Print(err) os.Exit(1) } // Get the existing query parameters from the request URL. q := req.URL.Query() // Add your querystring parameters to the `q` map. q.Add("api_key", "key_from_environment_or_flag") q.Add("another_thing", "foo & bar") // Encode the updated `q` map into a raw querystring and set it in the request. req.URL.RawQuery = q.Encode() // Retrieve the final URL with the querystring for debugging purposes. fmt.Println(req.URL.String()) // Output: // http://api.themoviedb.org/3/tv/popular?another_thing=foo+%26+bar&api_key=key_from_environment_or_flag }
此程式碼示範如何動態建立查詢字串參數,而無需訴諸字串連線。 url.Values 的 Encode 方法確保特殊字元被正確編碼以便傳輸。
以上是如何有效率地向 Go 的 GET 請求添加查詢字串參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!