Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menambah Parameter Rentetan Pertanyaan dengan Cekap pada Permintaan GET Go?

Bagaimana untuk Menambah Parameter Rentetan Pertanyaan dengan Cekap pada Permintaan GET Go?

DDD
DDDasal
2024-12-21 16:54:151029semak imbas

How to Efficiently Add Querystring Parameters to Go's GET Requests?

Parameter Rentetan Pertanyaan dalam Permintaan GET Go

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn