Go からの認証された HTTP クライアント リクエスト
認証を必要とする HTTP クライアント リクエストを行うコンテキストでは、後続のリクエストが失敗したときに一般的な問題が発生します401 アクセス拒否エラーが発生しました。この問題に対する Golang の解決策を見てみましょう。
提供されたコード スニペットでは、クライアントは HTTP 基本認証を使用してサーバーとの認証に成功しますが、その後のユーザーの詳細を取得するリクエストで課題に直面します。これに対処する解決策は、カスタム Cookie jar を作成することです。
Golang の HTTP クライアントは、Cookie 管理を自動的に処理しません。 Cookie jar は、HTTP リクエスト全体で Cookie を保存および管理するために必要です。以下のコードは、カスタム Cookie jar の実装を定義します。
type myjar struct { jar map[string] []*http.Cookie } func (p* myjar) SetCookies(u *url.URL, cookies []*http.Cookie) { p.jar [u.Host] = cookies } func (p *myjar) Cookies(u *url.URL) []*http.Cookie { return p.jar[u.Host] }
main 関数では、カスタム Cookie jar を初期化し、それをクライアントの Jar フィールドに割り当てます。
jar := &myjar{} jar.jar = make(map[string] []*http.Cookie) client.Jar = jar
これらの変更により、Golang は認証された HTTP リクエスト全体で Cookie を正常に管理できるようになりました。今後、クライアントは認証されたセッションに関連付けられた Cookie を後続のリクエストに自動的に添付し、詳細リクエストが 401 エラーなしで正しく処理されるようにします。
以上がGo で認証された HTTP クライアント リクエストの Cookie を管理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。