Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Menghalang Ubah Hala dengan Klien HTTP Go?

Bagaimanakah Saya Boleh Menghalang Ubah Hala dengan Klien HTTP Go?

DDD
Lepaskan: 2024-12-21 06:44:13
asal
620 orang telah melayarinya

How Can I Prevent Redirects with the Go HTTP Client?

Tidak Mengikuti Ubah Hala dengan Klien HTTP Go

Apabila berinteraksi dengan REST API yang mengembalikan respons ubah hala, mengubah suai tingkah laku klien Go HTTP mengabaikan ubah hala mungkin diperlukan untuk kes penggunaan tertentu. Berikut ialah cara yang mudah dan berkesan untuk mencapai kefungsian ini:

Fungsi CheckRedirect http.Client diutamakan berbanding tingkah laku mengikut ubah hala lalai. Dengan menyesuaikan fungsi ini, anda boleh menentukan bila ubah hala harus diikuti. Untuk mengelakkan ubah hala automatik, sediakan pelaksanaan alternatif:

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

Konfigurasi ini memaklumkan pakej HTTP untuk mengelakkan operasi ubah hala. Ia mengembalikan http.ErrUseLastResponse, yang mengarahkan pakej untuk menggunakan respons terkini dengan badan masih boleh diakses.

Dalam contoh anda, kemas kini konfigurasi klien seperti berikut:

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

Dengan menetapkan ini konfigurasi, skrip anda akan berjaya mewujudkan sambungan ke titik akhir, mendapatkan semula pengepala Lokasi HTTP untuk pemprosesan selanjutnya dan mengelak daripada diubah hala ke sumber baharu. Kaedah ini menyediakan pendekatan yang lebih elegan dan bebas ralat berbanding penyelesaian alternatif yang memaksa pengendalian ralat.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghalang Ubah Hala dengan 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan