一尘不染

进行HTTP发布并使用Cookies

go

我正在尝试使用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?

}

阅读 237

收藏
2020-07-02

共1个答案

一尘不染

Go 1.1引入了一个cookie
jar实现net/http/cookiejar

import (
    "net/http"
    "net/http/cookiejar"
)

cookieJar, _ := cookiejar.New(nil)

client := &http.Client{
    Jar: cookieJar,
}
2020-07-02