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

Susan Sarandon
Lepaskan: 2024-11-10 07:15:02
asal
978 orang telah melayarinya

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]
}
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan