利用 Go 的 cookiejar 通过 Cookie 跟踪重定向
当 HTTP 请求导致 302 重定向时,维护从服务器用于后续请求。在 Go 中,这可以通过 cookiejar 包来实现,提供一种在保留 cookie 的同时自动跟踪重定向的便捷方法。
在此场景中,目标是使用以下设置来模拟 CURL 的行为:
使用 cookiejar 实现
在 Go 1.1 中,net/http/cookiejar 包可以无缝处理这些任务。下面是演示其用法的代码示例:
<code class="go">package main import ( "golang.org/x/net/publicsuffix" "io/ioutil" "log" "net/http" "net/http/cookiejar" ) func main() { // Configure the cookie jar. options := cookiejar.Options{ PublicSuffixList: publicsuffix.List, } jar, err := cookiejar.New(&options) if err != nil { log.Fatal(err) } // Create an HTTP client with the cookie jar. client := http.Client{Jar: jar} // Make the request. resp, err := client.Get("http://dubbelboer.com/302cookie.php") if err != nil { log.Fatal(err) } // Read the response body. data, err := ioutil.ReadAll(resp.Body) resp.Body.Close() if err != nil { log.Fatal(err) } // Log the response. log.Println(string(data)) }</code>
在此示例中,cookie jar 配置为遵循公共后缀列表,确保正确的基于域的 cookie 处理。使用 jar 创建客户端,并向指定的 URL 发出 GET 请求。读取并记录响应正文,证明 cookie jar 有效地处理重定向并保留 cookie。
以上是如何使用 Go 的 CookieJar 来跟踪重定向,同时保留 cookie?的详细内容。更多信息请关注PHP中文网其他相关文章!