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 }
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 }, }
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!