Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menguruskan Kuki untuk Permintaan Pelanggan HTTP yang Disahkan dalam Go?

Bagaimana untuk Menguruskan Kuki untuk Permintaan Pelanggan HTTP yang Disahkan dalam Go?

Susan Sarandon
Susan Sarandonasal
2024-11-10 07:15:021055semak imbas

How to Manage Cookies for Authenticated HTTP Client Requests in Go?

Permintaan Pelanggan HTTP Disahkan daripada Go

Dalam konteks membuat permintaan klien HTTP yang memerlukan pengesahan, isu biasa timbul apabila permintaan berikutnya gagal dengan ralat 401 dinafikan akses. Mari kita terokai penyelesaian Golang untuk masalah ini.

Dalam coretan kod yang disediakan, pelanggan berjaya mengesahkan dengan pelayan menggunakan Pengesahan Asas HTTP tetapi menghadapi cabaran dalam permintaan seterusnya untuk mendapatkan butiran pengguna. Untuk menangani perkara ini, penyelesaiannya terletak pada mencipta balang kuki tersuai.

Pelanggan HTTP Golang tidak mengendalikan pengurusan kuki secara automatik. Balang kuki diperlukan untuk menyimpan dan mengurus kuki merentas permintaan HTTP. Kod di bawah mentakrifkan pelaksanaan balang kuki tersuai:

type myjar struct {
    jar map[string] []*http.Cookie
}

func (p* myjar) SetCookies(u *url.URL, cookies []*http.Cookie) {
    p.jar [u.Host] = cookies
}

func (p *myjar) Cookies(u *url.URL) []*http.Cookie {
    return p.jar[u.Host]
}

Dalam fungsi utama, kami memulakan balang kuki tersuai dan menetapkannya kepada medan Jar pelanggan:

    jar := &myjar{}
    jar.jar = make(map[string] []*http.Cookie)
    client.Jar = jar

Dengan menggabungkan perubahan ini, Golang boleh berjaya mengurus kuki merentas permintaan HTTP yang disahkan. Kini, pelanggan akan melampirkan kuki yang dikaitkan dengan sesi yang disahkan secara automatik pada permintaan seterusnya, memastikan permintaan Butiran diproses dengan betul tanpa ralat 401.

Atas ialah kandungan terperinci Bagaimana untuk Menguruskan Kuki untuk Permintaan Pelanggan HTTP yang Disahkan dalam 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