golang獲取重定向的地址


http模塊默認跟隨重定向

使用http.Get,當遇到301跳轉時,會獲取重定向后的內容

res, err := http.Get(url)
if err != nil {
logrus.Error(err)
return nil, err
}

//這里的狀態是200
fmt.println(res.StatusCode)

獲取頁面重定向的location

為了獲取重定向的location,要重新實現一個http.Client,例子如下:

	baseHost := "https://www.example.com/"
client := &http.Client{
    CheckRedirect: func(req *http.Request, via []*http.Request) error {
	return http.ErrUseLastResponse
    },
}

res, err := client.Get(baseHost)
if err != nil {
    return baseHost
}

if res.StatusCode != 301 {
    return baseHost
}

return res.Header.Get("Location")


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM