我正在try 使用Go登录一个网站并存储cookies以备将来使用.

您能给出发布表单、存储Cookie以及使用Cookie访问另一个页面的示例代码吗?

我想我可能需要让一个客户来储存cookies ,通过研究http://gotour.golang.org/src/pkg/net/http/client.go

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.

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

jar, err := cookiejar.New(nil)
if err != nil { // error handling }

client := &http.Client{
    Jar: jar,
}

Go相关问答推荐

Go 1.22 net/http群组路由

Golang Cososdb-gremlin连接

困扰围棋官方巡回赛的S建议所有方法都使用同一类型的接收器

切换选项卡时,Goland IDE中的光标自动转移

`docker system df` 与 `/system/df` (docker api 端点)

如何测试 Zerolog 记录器引发类型错误的日志(log)事件?

Go 中的sync.Cond 与 Wait 方法

如何将Golang测试用例的测试覆盖率值与特定阈值进行比较

将文本文件放入切片然后进行比较

致命错误 - 所有 Goroutines 都睡着了!僵局

Go cmp - 如何为以 struct 为键的映射定义自定义相等性?

不能在 *gorm.db 而不是 gorm.db 上使用 WithContext(ctx) 方法

如何将具有嵌入式 struct 的 struct 展平为 json

在 Go 中将指针传递给函数的正确方法是什么,以便我可以读取和/或修改指针表示的值?

退格字符在围棋操场中不起作用

防止在 Go 公用文件夹中列出目录

无法识别同步错误.使用一次

使用不安全的指针从 [] 字符串中获取值

如何使用通用字段初始化匿名struct数组

如何访问 Go 模板中数组的第一个索引的值