Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengikuti Ubah Arah dengan Kuki dalam Go?

Bagaimana untuk Mengikuti Ubah Arah dengan Kuki dalam Go?

Patricia Arquette
Patricia Arquetteasal
2024-11-06 02:34:02625semak imbas

How to Follow Redirections with Cookies in Go?

Mengikuti Ubah Arah dengan Kuki dalam Go

Dalam mengendalikan permintaan HTTP, adalah perkara biasa untuk menghadapi ubah hala yang membawa kuki. Ini menimbulkan cabaran apabila menggunakan Golang, kerana tingkah laku lalai adalah untuk menggugurkan kuki semasa ubah hala. Untuk mengatasinya, anda boleh menggunakan pakej net/http/cookiejar, yang diperkenalkan dalam Go 1.1.

Dengan pakej cookiejar, anda boleh mengkonfigurasi pelanggan untuk mengikut ubah hala secara automatik sambil mengekalkan kuki yang diterima. Untuk mencapai ini:

  1. Buat balang kuki.Jar untuk menyimpan kuki yang diterima.
  2. Tetapkan balang kuki.Jar sebagai medan Jar bagi contoh http.Klien.
  3. Gunakan klien yang diubah suai untuk membuat permintaan HTTP.

Berikut ialah ilustrasi contoh:

<code class="go">package main

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>

Dengan menggunakan pendekatan ini, pelanggan Go anda akan mengikut ubah hala secara automatik dan mengekalkan kuki yang diterima, serupa dengan gelagat dalam cURL apabila menetapkan COOKIEFILE, AUTOREFERER dan FOLLOWLOCATION.

Atas ialah kandungan terperinci Bagaimana untuk Mengikuti Ubah Arah dengan Kuki 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