Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Menyoal URL dalam Go Tanpa Mengikuti Ubah Hala?

Bagaimanakah Saya Boleh Menyoal URL dalam Go Tanpa Mengikuti Ubah Hala?

Linda Hamilton
Lepaskan: 2024-12-06 02:16:13
asal
155 orang telah melayarinya

How Can I Query URLs in Go Without Following Redirects?

Menyiasat URL Tanpa Ubah Hala dalam Go

Dalam artikel ini, kami menangani isu menanya URL tanpa mencetuskan ubah hala automatik dalam Go. Ini selalunya diperlukan untuk tujuan penandaarasan atau apabila anda hanya perlu log URL ubah hala atau ralat.

Penyelesaian 1: Menggunakan http.DefaultTransport.RoundTrip

Buat http .Minta objek seperti biasa. Daripada menghantarnya kepada http.Client, gunakan http.DefaultTransport.RoundTrip() untuk membuat permintaan. Ini memintas pengendalian ubah hala terbina dalam http.Klien.

import "net/http"

func QueryURLWithoutRedirect(url string) (*http.Response, error) {
    req, err := http.NewRequest("GET", url, nil)
    if err != nil {
        return nil, err
    }
    return http.DefaultTransport.RoundTrip(req)
}
Salin selepas log masuk

Penyelesaian 2: Lumpuhkan Ubah Hala dengan CheckRedirect

Buat http.Client dengan set medan CheckRedirect kepada tiada. Ini mengkonfigurasi pelanggan untuk tidak mengikuti ubah hala.

import "net/http"

func QueryURLWithoutRedirect(url string) (*http.Response, error) {
    client := &http.Client{
        CheckRedirect: nil,
    }
    return client.Get(url)
}
Salin selepas log masuk

Pertimbangan Lanjut

Walaupun kedua-dua penyelesaian menyediakan fungsi yang diingini, pendekatan pertama mungkin mengalami masalah prestasi di bawah beban tinggi , kerana ia mungkin menggunakan semula sambungan yang ditutup lebih awal.

Untuk memastikan setiap pertanyaan membuka sambungan baharu dengan pendekatan kedua, anda boleh mencipta http.Client baharu untuk setiap permintaan dalam satu gelung. Walau bagaimanapun, ini mungkin tidak perlu, kerana Go menutup sambungan terbiar secara automatik selepas tempoh tertentu.

Akhirnya, pilihan pendekatan bergantung pada keperluan prestasi khusus anda dan gelagat yang anda inginkan dalam senario dunia sebenar.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyoal URL dalam Go Tanpa Mengikuti Ubah Hala?. 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