Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menentukan URL Akhir Selepas Ubah Hala di Golang?

Bagaimana untuk Menentukan URL Akhir Selepas Ubah Hala di Golang?

DDD
DDDasal
2024-11-11 16:59:03496semak imbas

How to Determine the Final URL After Redirects in Golang?

Menentukan URL Akhir selepas Lencongan di Golang

Dalam pakej net/http Golang, permintaan HTTP GET boleh menghadapi ubah hala, yang boleh membawa ke URL destinasi akhir yang berbeza daripada permintaan awal. Masalah ini menimbulkan persoalan: bagaimanakah kita boleh menentukan URL akhir yang dicapai selepas beberapa siri ubah hala tanpa menggunakan penyelesaian yang menyusahkan?

Penyelesaian

Bertentangan dengan andaian bahawa pendekatan hackish adalah perlu, penyelesaian yang bersih dan mudah wujud dalam objek Respons yang dikembalikan oleh operasi HTTP GET. Objek ini memegang objek Permintaan yang memulakan permintaan, yang menyediakan akses kepada URL akhir yang dilawati.

import (
    "fmt"
    "log"
    "net/http"
)

func main() {
    resp, err := http.Get("http://stackoverflow.com/q/16784419/727643")
    if err != nil {
        log.Fatalf("http.Get => %v", err.Error())
    }

    // Function to retrieve the final URL
    finalURL := resp.Request.URL.String()

    fmt.Printf("The URL you ended up at is: %v", finalURL)
}

Output:

The URL you ended up at is: http://stackoverflow.com/questions/16784419/in-golang-how-to-determine-the-final-url-after-a-series-of-redirects

Kaedah ini membolehkan pengambilan semula URL akhir dengan mudah selepas sebarang bilangan ubah hala. Tiada penyesuaian tambahan atau manipulasi pembolehubah global diperlukan, memastikan pelaksanaan yang bersih dan cekap.

Atas ialah kandungan terperinci Bagaimana untuk Menentukan URL Akhir Selepas Ubah Hala di Golang?. 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