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
Linda Hamiltonasal
2024-12-06 02:16:13158semak imbas

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)
}

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)
}

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!

Kenyataan:
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