zoukankan      html  css  js  c++  java
  • 重定向

      
    package main
    
    import (
    	"errors"
    	"fmt"
    	"net/http"
    )
    
    func redirectLimitTimes() {
    	// 限制重定向的次数
    	client := &http.Client{
    		CheckRedirect: func(req *http.Request, via []*http.Request) error {
    			if len(via) > 10 {
    				return errors.New("redirect too times")
    			}
    			return nil
    		},
    	}
    
    	request, _ := http.NewRequest(
    		http.MethodGet,
    		"http://httpbin.org/redirect/20",
    		nil,
    	)
    	_, err := client.Do(request)
    	if err != nil {
    		panic(err)
    	}
    }
    
    func redirectForbidden() {
    	// 禁止重定向
    	// 登录请求,防止重定向到首页
    	client := &http.Client{
    		CheckRedirect: func(req *http.Request, via []*http.Request) error {
    			return http.ErrUseLastResponse
    		},
    	}
    
    	request, _ := http.NewRequest(
    		http.MethodGet,
    		"http://httpbin.org/cookies/set?name=poloxue",
    		nil,
    	)
    	r, err := client.Do(request)
    	if err != nil {
    		panic(err)
    	}
    	defer func() {_ = r.Body.Close()}()
    	fmt.Println(r.Request.URL)
    }
    
    func main() {
    	// 重定向
    	// 返回一个状态码,3xx 301 302 303 307 308
    	redirectForbidden()
    }
    

      

  • 相关阅读:
    常用的标签分类
    css 实现动态二级菜单
    5大主流浏览器内核
    MySQL里面的子查询
    Algolia Search
    Nginx配置
    PHP中Abstract与Interface区别
    Shell 基本语法
    百度 echarts K线图使用
    php_soap扩展应用
  • 原文地址:https://www.cnblogs.com/yzg-14/p/13281260.html
Copyright © 2011-2022 走看看