Membina Rentetan Pertanyaan secara Dinamik dalam Permintaan Go GET
Dalam Go, membina permintaan HTTP GET dengan rentetan pertanyaan boleh menjadi dilema. Pendekatan lalai memerlukan rentetan penggabungan, yang menjadi membosankan dan terdedah kepada ralat. Untuk menangani perkara ini, Go menyediakan pakej net/url, yang menawarkan cara yang lebih cekap untuk membina rentetan pertanyaan dinamik.
Untuk membina rentetan pertanyaan, anda boleh menggunakan jenis pertanyaan.Nilai daripada pakej net/url. Coretan kod berikut menunjukkan cara untuk melakukan ini:
package main import ( "fmt" "log" "net/http" "golang.org/x/net/context" "golang.org/x/net/http2" ) func main() { ctx := context.Background() // Get the request context req := http.Request{} ctx = context.WithValue(ctx, http2.ClientConnContextKey, nil) // Build the querystring q := new(url.Values) // Initialize a new querystring q.Add("api_key", "my_api_key") q.Add("limit", "10") // Parse the URL and add the querystring url := "http://example.com/api/v1/users" url = fmt.Sprintf("%s?%s", url, q.Encode()) // Send the request resp, err := http.Get(url) if err != nil { log.Fatal(err) } defer resp.Body.Close() // Process the response fmt.Println(resp.Status) body, err := ioutil.ReadAll(resp.Body) if err != nil { log.Fatal(err) } fmt.Println(string(body)) }
Dalam contoh ini, jenis pertanyaan.Nilai membolehkan anda menambah parameter rentetan pertanyaan secara dinamik. Fungsi url.String menggabungkan URL dan rentetan pertanyaan, menghasilkan permintaan GET yang sah.
Menggunakan pakej net/url memudahkan proses membina rentetan pertanyaan dinamik dalam permintaan Go GET, menjadikannya lebih cekap dan kurang ralat -terlentang.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membina Rentetan Pertanyaan Dinamik dengan Cekap untuk Permintaan Go GET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!