首页 > 后端开发 > Golang > 正文

如何解决 Go 中基本 HTTP 身份验证期间的'不支持的协议方案”错误?

Susan Sarandon
发布: 2024-11-17 05:27:03
原创
317 人浏览过

How to Resolve

Go 中的基本 HTTP 身份验证:解决重定向问题

使用提供的代码在 Go 中尝试基本 HTTP 身份验证时,开发人员可能会遇到以下错误:“不支持的协议方案“”。”此错误可能是由于重定向的处理造成的。

陷阱和解决方案

网站执行重定向时会出现微妙之处。在 Go 中,在重定向期间,原始请求中指定的自定义标头会丢失。为了解决这个问题,必须定义一个自定义重定向函数来恢复标头。

使用自定义重定向函数更新了代码

以下代码片段说明了更新后的脚本,其中包括重定向函数:

func basicAuth(username, password string) string {
  auth := username + ":" + password
  return base64.StdEncoding.EncodeToString([]byte(auth))
}

func redirectPolicyFunc(req *http.Request, via []*http.Request) error{
  req.Header.Add("Authorization","Basic " + basicAuth("username1","password123"))
  return nil
}

func main() {
  client := &http.Client{
    Jar: cookieJar,
    CheckRedirect: redirectPolicyFunc,
  }

  req, err := http.NewRequest("GET", "http://localhost/", nil)
  req.Header.Add("Authorization","Basic " + basicAuth("username1","password123")) 
  resp, err := client.Do(req)
}
登录后复制

通过此修改,自定义重定向函数可确保将身份验证标头添加到后续重定向请求中,从而解决错误并启用 HTTP 身份验证。

以上是如何解决 Go 中基本 HTTP 身份验证期间的'不支持的协议方案”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板