Vì vậy, tôi đang sử dụng gói net/http. Tôi đang nhận một URL mà tôi biết chắc chắn đang chuyển hướng. Nó thậm chí có thể chuyển hướng một vài lần trước khi hạ cánh trên URL cuối cùng. Chuyển hướng được xử lý tự động sau hậu trường.Trong golang, làm thế nào để xác định URL cuối cùng sau một loạt các chuyển hướng?
Có cách nào dễ dàng để tìm ra URL cuối cùng không có cách giải quyết hack liên quan đến việc thiết lập trường CheckRedirect trên đối tượng http.Client không?
Tôi đoán tôi nên đề cập đến rằng tôi nghĩ rằng tôi đã đưa ra một cách giải quyết, nhưng đó là loại hackish, vì nó liên quan đến việc sử dụng biến toàn cục và thiết lập trường CheckRedirect trên http.Client tùy chỉnh.
Phải có cách làm sạch hơn. Tôi hy vọng cho một cái gì đó như thế này:
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
// Try to GET some URL that redirects. Could be 5 or 6 unseen redirections here.
resp, err := http.Get("http://some-server.com/a/url/that/redirects.html")
if err != nil {
log.Fatalf("http.Get => %v", err.Error())
}
// Find out what URL we ended up at
finalURL := magicFunctionThatTellsMeTheFinalURL(resp)
fmt.Printf("The URL you ended up at is: %v", finalURL)
}
Tôi xin lỗi tôi không có một URL thực để bạn có thể làm việc với. Điều này là dành cho công việc của tôi và trang web tôi đang làm việc với yêu cầu bằng chứng xác thực, v.v. –
bản sao có thể có của [Cách truy xuất đích URL cuối cùng trong khi sử dụng gói http trong Go?] (Http://stackoverflow.com/questions/ 16532436/how-to-retrieve-the-final-url-destination-while-using-the-http-package-in-go) – peterSO