首页 > 解决方案 > http.NewRequest 只允许一个重定向

问题描述

我来自这个问题,如果我根本不想重定向,答案就有效:

client := &http.Client{
    CheckRedirect: func(req *http.Request, via []*http.Request) error {
        return http.ErrUseLastResponse
    },
}

但是我怎样才能在这里只允许一个重定向?

标签: go

解决方案


正如文档所述:

参数 req 和 via 是即将到来的请求和已经发出的请求,最早的在前。

因此,在第一次重定向时,len(via)将为 1。如果您返回错误 if len(via)>1,则其他请求应该会失败。


推荐阅读