>  기사  >  백엔드 개발  >  Go에서 기본 HTTP 인증 중 "지원되지 않는 프로토콜 체계" 오류를 해결하는 방법은 무엇입니까?

Go에서 기본 HTTP 인증 중 "지원되지 않는 프로토콜 체계" 오류를 해결하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-17 05:27:03307검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.