golang HTTP請求 重定向禁止使用


使用 net/http 包
記錄下

package main

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

// RedirectFunc 重定向禁止
func RedirectFunc(req *http.Request, via []*http.Request) error {
	fmt.Println(req.RequestURI)
	// 如果返回 非nil 則禁止向下重定向 返回nil 則 一直向下請求 10 次 重定向
	return http.ErrUseLastResponse
}

// test 測試 golang net/http 的重定向請求
func test(sAddr string) {
	client := &http.Client{CheckRedirect: RedirectFunc}
	rep, err := client.Get(sAddr)
	if err != nil {
		log.Panic(err)
	}
	//讀取響應的結果
	data, err := ioutil.ReadAll(rep.Body)
	if err != nil {
		log.Panic(err)
	}
	fmt.Println(string(data[:]))
	//輸出響應的頭
	for k, v := range rep.Header {
		fmt.Println(k, v)
	}
	defer rep.Body.Close()
	url, err := rep.Location()
	if err != nil {
		log.Panic(err)
	}
	fmt.Println(url.Host)

}

func main() {
	test("https://v.kuaishou.com/8Ss9tY")
}


免責聲明!

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



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