程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Go 中的基本 HTTP 身份验证大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Go 中的基本 http 身份验证?

开发过程中遇到Go 中的基本 http 身份验证的问题如何解决?下面主要结合日常开发的经验,给出你关于Go 中的基本 http 身份验证的解决方法建议,希望对你解决Go 中的基本 http 身份验证有所启发或帮助;

潜在的“问题”是您的网站是否进行了任何重定向……Go-lang 会在重定向时删除您指定的标头。(我必须使用wireshark才能看到这一点!您可以通过右键单击然后“检查元素”并单击网络选项卡在Chrome中快速找到)

您需要定义一个重定向函数来重新添加标头。

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)
}

您需要为 Newrequest 指定协议,例如“http://”,请参见此处

req, err := http.Newrequest("GET", "http://mydomain.com", nil)

解决方法

我正在尝试使用下面的代码进行基本的 http 身份验证,但它抛出了以下错误:

func basicAuth() String {
    var username String = "foo"
    var passwd String = "bar"
    client := &http.Client{}
    req,err := http.Newrequest("GET","mydomain.com",nil)
    req.SetBasicAuth(username,passwd)
    resp,err := client.Do(req)
    if err != nil{
        log.Fatal(err)
    }
    bodyText,err := ioutIl.ReadAll(resp.body)
    s := String(bodyText)
    return s
}

知道我可能做错了什么吗?

大佬总结

以上是大佬教程为你收集整理的Go 中的基本 HTTP 身份验证全部内容,希望文章能够帮你解决Go 中的基本 HTTP 身份验证所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。