問題:
リダイレクトの受信時 (HTTP コード 302)応答に Cookie が含まれている場合、Go クライアントは受信した Cookie を利用しながら新しい場所をどのように追跡できますか?
回答:
Go 1.1 以降では、 net/http/cookiejar パッケージは、この問題に対する解決策を提供します。
<code class="go">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>
このコード スニペットは、受信した Cookie を保存する Cookie jar (jar) を作成することで、CURL の Cookie ベースの位置追跡動作を効果的にエミュレートします。クライアントがリダイレクトに従うと、保存されている Cookie がリクエストとともに送信され、適切な権限で新しい場所にアクセスできるようになります。
以上がGo で cURL の Cookie ベースのロケーションフォローをエミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。