HTTP リクエストの処理では、Cookie を含むリダイレクトに遭遇することがよくあります。デフォルトの動作ではリダイレクト中に Cookie が削除されるため、これは Golang を使用するときに問題を引き起こします。これを解決するには、Go 1.1 で導入された net/http/cookiejar パッケージを利用できます。
cookiejar パッケージを使用すると、受信した Cookie を保持しながらリダイレクトに自動的に従うようにクライアントを設定できます。これを実現するには:
次に例を示します:
<code class="go">package main import ( "golang.org/x/net/publicsuffix" "io/ioutil" "log" "net/http" "net/http/cookiejar" ) func main() { options := cookiejar.Options{ PublicSuffixList: publicsuffix.List, } jar, err := cookiejar.New(&options) if err != nil { log.Fatal(err) } client := http.Client{Jar: jar} resp, err := client.Get("http://dubbelboer.com/302cookie.php") if err != nil { log.Fatal(err) } data, err := ioutil.ReadAll(resp.Body) resp.Body.Close() if err != nil { log.Fatal(err) } log.Println(string(data)) }</code>
このアプローチを使用すると、Go クライアントは自動的にリダイレクトに従い、受信したリクエストを維持します。 COOKIEFILE、AUTOREFERER、および FOLLOWLOCATION を設定するときの cURL の動作と同様の Cookie。
以上がGo で Cookie を使用してリダイレクトを追跡するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。