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

posted @ 2020-08-26 11:21  轻风々  阅读(1211)  评论(0编辑  收藏  举报