Dalam Go, menghantar permintaan GET dengan parameter rentetan pertanyaan boleh dicapai menggunakan http.Client. Walau bagaimanapun, tugas ini mungkin tidak semudah yang kelihatan.
Untuk mengatasi cabaran ini, anda boleh memanfaatkan pakej net/url. Jenis Nilainya menyediakan mekanisme yang mudah untuk membina rentetan pertanyaan. Pertimbangkan contoh berikut:
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 }
Kod ini menunjukkan cara membina parameter rentetan pertanyaan secara dinamik tanpa menggunakan penggabungan rentetan. Kaedah Encode url.Values memastikan bahawa aksara khas dikodkan dengan betul untuk penghantaran.
Atas ialah kandungan terperinci Bagaimana untuk Menambah Parameter Rentetan Pertanyaan dengan Cekap pada Permintaan GET Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!