Masalah:
Apabila menerima ubah hala (kod HTTP 302) dengan kuki yang disertakan dalam jawapan, bagaimanakah pelanggan Go boleh mengikuti lokasi baharu sambil menggunakan kuki yang diterima?
Jawapan:
Dalam Go 1.1 dan yang lebih baru, net/http/cookiejar package menyediakan penyelesaian untuk ini:
<code class="go">import ( "golang.org/x/net/publicsuffix" "io/ioutil" "log" "net/http" "net/http/cookiejar" ) func main() { options := cookiejar.Options{ PublicSuffixList: publicsuffix.List, } jar, err := cookiejar.New(&options) if err != nil { log.Fatal(err) } client := http.Client{Jar: jar} resp, err := client.Get("http://dubbelboer.com/302cookie.php") if err != nil { log.Fatal(err) } data, err := ioutil.ReadAll(resp.Body) resp.Body.Close() if err != nil { log.Fatal(err) } log.Println(string(data)) }</code>
Coretan kod ini secara berkesan meniru lokasi berasaskan kuki CURL mengikut gelagat dengan mencipta balang kuki (jar) yang menyimpan kuki yang diterima. Apabila pelanggan mengikuti ubah hala, ia menghantar kuki yang disimpan bersama-sama dengan permintaan, membenarkannya mengakses lokasi baharu dengan kebenaran yang sesuai.
Atas ialah kandungan terperinci Bagaimana untuk Meniru Lokasi Berasaskan Kuki cURL Mengikuti dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!