Go での HTTP POST と Cookie の管理
Web サイトと対話する場合、セッションを維持しユーザー設定を追跡するために、Cookie の保存が必要になることがよくあります。 Go では、これは、Go 1.1 で導入された http.Client 構造体と cookiejar パッケージを利用することで実現できます。
フォームの投稿と、関連付けられた Cookie の保存を示す次のコード スニペットを考えてみましょう。
import ( "net/http" "net/http/cookiejar" "net/url" ) func Login(user, password string) { postUrl := "http://www.example.com/login" // Set up login form data values := make(url.Values) values.Set("user", user) values.Set("password", password) // Create a cookie jar for storing cookies jar, err := cookiejar.New(nil) if err != nil { // Handle error } // Create an HTTP client with the cookie jar client := &http.Client{ Jar: jar, } // Submit the form using the client resp, err := client.PostForm(postUrl, values) if err != nil { // Handle error } defer resp.Body.Close() // Cookies are now stored in the cookie jar }
ログイン後は、同じクライアントを使用して他のページにアクセスでき、保存されている Cookie が次のページで自動的に送信されます。 request:
func ViewBill(url string) { // Assuming the client with the cookie jar is already created resp, err := client.Get(url) if err != nil { // Handle error } defer resp.Body.Close() // The stored cookies will be used automatically for this request }
cookiejar パッケージと http.Client 構造体を利用すると、認証と Cookie ベースのセッション追跡を必要とする Web サイトと対話するときに Go で Cookie を簡単に処理し、セッションを維持できます。
以上がGo で HTTP POST リクエストと Cookie を効果的に管理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。