我正在尝试使用Go登录网站并存储cookie以供以后使用。
您能否提供示例代码来发布表单,存储cookie以及使用cookie访问另一个页面?
我认为我可能需要通过研究http://gotour.golang.org/src/pkg/net/http/client.go来使客户端存储cookie。
package main import ("net/http" "log" "net/url" ) func Login(user, password string) string { postUrl := "http://www.pge.com/eum/login" // Set up Login values := make(url.Values) values.Set("user", user) values.Set("password", password) // Submit form resp, err := http.PostForm(postUrl, values) if err != nil { log.Fatal(err) } defer resp.Body.Close() // How do I store cookies? return "Hello" } func ViewBill(url string, cookies) string { //What do I put here? }
Go 1.1引入了一个cookie jar实现net/http/cookiejar。
net/http/cookiejar
import ( "net/http" "net/http/cookiejar" ) cookieJar, _ := cookiejar.New(nil) client := &http.Client{ Jar: cookieJar, }