Вы можете изменить свой http.Client
, чтобы снова добавить заголовок после его удаления, используя CheckRedirect
:
CheckRedirect func(req *Request, via []*Request) error
Поскольку req
является предстоящим запросом, он может быть изменено перед отправкой. После внесения изменений, верните nil
, чтобы указать, что запрос все еще должен быть отправлен.
Поскольку это изменение клиента http вместо запроса, вы должны убедиться, что это перенаправление используется только для один URL-адрес, где он вам нужен (если вы используете этот клиент для других запросов).
Определение вашего клиента может выглядеть следующим образом:
http.Client{
CheckRedirect: func(req *http.Request, via []*http.Request) error {
// you can check old responses for a status code
if len(via) != 0 && via[0].Response.StatusCode == http.StatusTemporaryRedirect {
req.Header.Add("Authorization", "some-value")
}
return nil
},
}