英文:
http.NewRequest allow only one redirect
问题
我来自这个问题,答案适用于我不想要任何重定向的情况:
client := &http.Client{
CheckRedirect: func(req *http.Request, via []*http.Request) error {
return http.ErrUseLastResponse
},
}
但是在这里,如何允许仅一次重定向呢?
英文:
I came from this question and the answer works if I want no redirect at all:
client := &http.Client{
CheckRedirect: func(req *http.Request, via []*http.Request) error {
return http.ErrUseLastResponse
},
}
But how can I allow exactly one redirect here?
答案1
得分: 2
根据文档的说明:
参数 req 和 via 分别是即将进行的请求和已经发出的请求,最早的请求排在最前面。
因此,在第一次重定向时,len(via)
的值将为 1。如果在 len(via)>1
时返回错误,那么对于额外的请求,它应该会失败。
英文:
As the documentation states:
> The arguments req and via are the upcoming request and the requests made already, oldest first.
So at the first redirect, len(via)
will be 1. If you return error if len(via)>1
, it should fail for additional requests.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论