Dalam Go, mengurus kuki adalah penting untuk mengekalkan sesi dan mengakses sumber yang dilindungi. Semasa menjalankan operasi HTTP POST, adalah penting untuk menyimpan kuki untuk permintaan seterusnya.
Coretan kod memberikan percubaan untuk log masuk ke tapak web, menyimpan kuki dan menggunakannya untuk melihat bil. Potensi peningkatan adalah dengan menggunakan pakej balang kuki yang diperkenalkan dalam Go 1.1.
Pakej balang kuki menyediakan cara yang mudah untuk mengurus kuki untuk permintaan pelanggan. Begini cara untuk menyepadukannya ke dalam kod:
import ( "net/http" "net/http/cookiejar" ) jar, err := cookiejar.New(nil) if err != nil { // Error handling } client := &http.Client{ Jar: jar, }
Dengan menggunakan balang sebagai sebahagian daripada http.Client, kuki akan disimpan secara automatik dan dihantar dengan permintaan seterusnya.
Kod yang dikemas kini untuk menyiarkan borang, menyimpan kuki dan melihat bil:
func Login(user, password string, client *http.Client) string { postUrl := "http://www.pge.com/eum/login" // Set up Login values := make(url.Values) values.Set("user", user) values.Set("password", password) // Submit form resp, err := client.PostForm(postUrl, values) if err != nil { log.Fatal(err) } defer resp.Body.Close() return "Hello" } func ViewBill(url string, client *http.Client) string { // Make the request using the client with cookies resp, err := client.Get(url) if err != nil { log.Fatal(err) } defer resp.Body.Close() return resp.Body }
Dalam versi dikemas kini ini, objek klien dihantar sebagai parameter kepada fungsi Log Masuk dan ViewBill. Ini memastikan pelanggan yang sama digunakan untuk kedua-dua operasi, memelihara kuki.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengurus Kuki dengan Berkesan dalam Permintaan POST HTTP Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!