You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go语言http.Client如何配置仅允许跟随1次重定向

要实现仅允许客户端跟随最多1次重定向,只需调整CheckRedirect函数的判断逻辑即可:

CheckRedirect的入参via是按顺序存储已发起请求的切片,第一个元素为初始请求,后续元素是已经完成的重定向请求,len(via)的值等于已发起的请求总数。当需要限制最多跟随1次重定向时,只需判断已发起请求总数超过2(初始请求+1次重定向)时返回http.ErrUseLastResponse终止重定向,否则返回nil允许继续跳转即可。

修改后的代码如下:

client := &http.Client{
    CheckRedirect: func(req *http.Request, via []*http.Request) error {
        // 仅允许1次重定向,已发起请求数超过2时终止跳转
        if len(via) > 1 {
            return http.ErrUseLastResponse
        }
        return nil
    },
}

如果后续需要调整允许的最大重定向次数,直接修改判断条件中的数值即可,比如要允许最多5次重定向,将条件改为len(via) > 5即可。

内容的提问来源于stack exchange,提问作者daisy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 08:27:00