Go での HTTP 基本認証: 一般的なエラーのトラブルシューティング
提供されたコードを使用して基本 HTTP 認証を実装しようとすると、エラーが発生します。 「サポートされていないプロトコル スキーム」。これは、リクエスト オブジェクトの作成時のコードの見落としに遡る可能性があります。
このエラーに対処するには、リクエスト URL で正しいスキームが指定されていることを確認してください。この例では、プロトコル スキームを指定せずに「mydomain.example」へのリクエストを行おうとするため、エラーが発生します。
これを修正するには、コードを変更して、次のように HTTPS スキームを明示的に指定します。
req, err := http.NewRequest("GET", "https://mydomain.example", nil)
さらに、Go の HTTP クライアントはリダイレクトを処理するときに別の問題が発生する可能性があることに注意してください。デフォルトでは、クライアントはリダイレクト中に Basic Authorization ヘッダーを含むカスタム ヘッダーを保持しません。
この動作を回避するには、リダイレクト中に Authorization ヘッダーを明示的に追加するカスタム リダイレクト ポリシー関数を定義できます。これにより、リダイレクト プロセス全体を通じて認証資格情報が確実に保持されます。
カスタム リダイレクト ポリシー関数の例を次に示します。
func redirectPolicyFunc(req *http.Request, via []*http.Request) error { req.Header.Add("Authorization", "Basic " + basicAuth(username, password)) return nil }
HTTP クライアントでこのカスタム ポリシーを採用することで、 Basic Authorization ヘッダーがリダイレクト中に適切に処理され、シームレスな認証が可能になること。
以上がGo 基本認証で「サポートされていないプロトコル スキーム ''」エラーを修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。