Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Melumpuhkan Ubah hala Automatik dalam Klien HTTP Go?

Bagaimana untuk Melumpuhkan Ubah hala Automatik dalam Klien HTTP Go?

Linda Hamilton
Lepaskan: 2024-12-26 05:42:44
asal
519 orang telah melayarinya

How to Disable Automatic Redirects in the Go HTTP Client?

Melumpuhkan Ubah Hala Automatik dalam Klien HTTP Go

Klien HTTP Go secara automatik mengikut ubah hala HTTP apabila titik akhir API mengembalikan ubah hala HTTP 302 dengan Pengepala Lokasi HTTP. Tingkah laku ini mungkin tidak diingini dalam senario tertentu, seperti apabila anda perlu menangkap pengepala Lokasi HTTP untuk pemprosesan kemudian.

Pendekatan biasa untuk melumpuhkan ubah hala automatik melibatkan mengatasi fungsi CheckRedirect pelanggan. Walau bagaimanapun, penyelesaian ini mungkin kelihatan seperti penggodaman kerana ia menganggap ubah hala HTTP sebagai ralat, yang mana ia tidak.

Penyelesaian yang lebih elegan ialah menggunakan http.Transport untuk mengkonfigurasi tingkah laku pelanggan:

import (
    "net/http"
)

// Create a custom round-trip transport
transport := &http.Transport{
    DisableKeepAlives: true,
}

// Create an HTTP client with the custom transport
client := &http.Client{
    Transport: transport,
}
Salin selepas log masuk

Dalam persediaan ini, medan DisableKeepAlives ditetapkan kepada benar yang menghalang pelanggan daripada mengekalkan sambungan berterusan, mengelakkan keperluan untuk memintas ubah hala.

Sebagai alternatif, anda boleh menggunakan kod berikut untuk melumpuhkan ubah hala secara eksplisit:

client := &http.Client{
    CheckRedirect: func(req *http.Request, via []*http.Request) error {
        return http.ErrUseLastResponse
    },
}
Salin selepas log masuk

Dengan kod ini, pakej HTTP secara automatik mengiktiraf bahawa ubah hala tidak harus diikuti, tetapi tidak membuang sebarang kesilapan. Ini membolehkan anda membuat permintaan HTTP dengan Pengesahan Asas sambil melumpuhkan ubah hala automatik tanpa menggunakan pengendalian ralat yang rumit.

Atas ialah kandungan terperinci Bagaimana untuk Melumpuhkan Ubah hala Automatik dalam Klien HTTP 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