Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Menghalang Klien HTTP Go daripada Mengikuti Ubah Hala Secara Automatik?

Bagaimanakah Saya Boleh Menghalang Klien HTTP Go daripada Mengikuti Ubah Hala Secara Automatik?

Linda Hamilton
Lepaskan: 2025-01-04 01:53:39
asal
810 orang telah melayarinya

How Can I Prevent Go's HTTP Client from Automatically Following Redirects?

Memanfaatkan Klien HTTP Go untuk Melumpuhkan Ubah Hala Automatik

Pengaturcaraan Dalam Go, pengendalian ubah hala HTTP adalah penting semasa membina klien API RESTful. Walau bagaimanapun, terdapat senario di mana pengendalian ubah hala automatik tidak diingini. Soalan ini meneroka pendekatan alternatif untuk menghalang klien Go HTTP daripada mengikuti ubah hala secara automatik.

Penyelesaian awal yang disediakan dalam soalan menyerlahkan pelaksanaan tersuai fungsi CheckRedirect, memaksa ubah hala HTTP dianggap sebagai ralat. Walaupun berkesan dari segi teknikal, rasanya tidak wajar untuk mengklasifikasikan ubah hala sebagai kegagalan.

Untuk menangani isu ini, jawapannya memberikan penyelesaian yang lebih elegan: mengubah suai fungsi CheckRedirect untuk mengembalikan http.ErrUseLastResponse. Ini memberi isyarat kepada pakej HTTP bahawa ubah hala tidak seharusnya diikuti, tanpa mencetuskan pengendalian ralat.

Berikut ialah kod yang dikemas kini:

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

Dengan pengubahsuaian ini, klien HTTP akan mengabaikan ubah hala dan kembalikan respons terkini dengan badannya masih boleh diakses. Komen dalam kod sumber menjelaskan:

Sebagai kes khas, jika CheckRedirect mengembalikan ErrUseLastResponse, maka respons terbaharu dikembalikan dengan kandungannya tidak ditutup, bersama-sama dengan ralat sifar.

Sebagai Hasilnya, anda boleh mengendalikan ubah hala secara manual dalam skrip anda, memberikan lebih fleksibiliti dan kawalan ke atas aliran kerja HTTP. Dengan memanfaatkan teknik ini, anda boleh berinteraksi dengan API REST yang mengembalikan ubah hala sambil mengekalkan tahap penyesuaian yang diingini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghalang Klien HTTP Go daripada Mengikuti Ubah Hala Secara Automatik?. 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