为了账号安全,请及时绑定邮箱和手机立即绑定

带有授权标头的 307 重定向

带有授权标头的 307 重定向

Go
芜湖不芜 2022-05-10 16:17:38
在查看http的Go 文档Authorization时,当响应为307. 显然这对几乎所有情况都是有意义的,但有没有办法不删除Authorization标题?
查看完整描述

1 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

您可以使用以下方法修改您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

    },

}


查看完整回答
反对 回复 2022-05-10
  • 1 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信