ホームページ  >  記事  >  バックエンド開発  >  Go で認証された HTTP クライアント リクエストの Cookie を管理するにはどうすればよいですか?

Go で認証された HTTP クライアント リクエストの Cookie を管理するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-10 07:15:021004ブラウズ

How to Manage Cookies for Authenticated HTTP Client Requests in Go?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。