手动禁止重定向,解决模拟请求访问会重定向的链接,无法正确获得resp的问题

事情是这样的:

昨天要模拟请求去登录路由器,结果使用无论是使用Go模拟请求,还是curl发送请求,都无法获得想要的resp,但是使用ApiFox发送请求却可以拿到正确的resp,之后即使使用ApiFox或者是Postman生成的代码模拟请求依然无法获得正确resp。

今天来了之后,请教了前辈,前辈研究了一个小时发现正常访问这个链接时会被重定向到另外一个链接,并且直接返回200,而不是302,需要手动禁止

func main() {

	url := ""
	method := "POST"

	payload := &bytes.Buffer{}
	writer := multipart.NewWriter(payload)
	_ = writer.WriteField("password", "MTIzNDU2")
	err := writer.Close()
	if err != nil {
		fmt.Println(err)
		return
	}

    //此处禁止重定向
	client := &http.Client{
		CheckRedirect: func(req *http.Request, via []*http.Request) error {
			return http.ErrUseLastResponse /* 不进入重定向 */
		},
	}
	req, err := http.NewRequest(method, url, payload)

	if err != nil {
		fmt.Println(err)
		return
	}

	req.Header.Set("Content-Type", writer.FormDataContentType())
	res, err := client.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer res.Body.Close()

	body, err := ioutil.ReadAll(res.Body)
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println(string(body))
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值