Google app engine 在浏览器上设置Cookie:Golang

Google app engine 在浏览器上设置Cookie:Golang,google-app-engine,cookies,go,Google App Engine,Cookies,Go,作为Golang的新手,我试图在浏览器上设置cookies, 有简单的基本代码,但根本不起作用&做了一些谷歌搜索,找到了一些stackoverflow的例子,但仍然没有找到正确的方法 创建了一个简单的hello.go package main import "io" import "net/http" import "time" func handler(w http.ResponseWriter, req *http.Request) { expire := time.Now().

作为Golang的新手,我试图在浏览器上设置cookies, 有简单的基本代码,但根本不起作用&做了一些谷歌搜索,找到了一些stackoverflow的例子,但仍然没有找到正确的方法

创建了一个简单的
hello.go

package main

import "io"
import "net/http"
import "time"

func handler(w http.ResponseWriter, req *http.Request) {
    expire := time.Now().AddDate(0, 0, 1)
    cookie := http.Cookie{"test", "tcookie", "/", "www.dummy.com", expire, expire.Format(time.UnixDate), 86400, true, true, "test=tcookie", []string{"test=tcookie"}}
    req.AddCookie(&cookie)
    io.WriteString(w, "Hello world!")
}

func main() {
    http.HandleFunc("/", handler)
}
但正如所料,我在这里遇到了类似于
\hello.go:9:15:composite struct literal net/http.Cookie的错误,其中包含未标记的字段

任何人都可以建议我或给我一个设置cookies的基本示例(详细说明)

在某处进行了几次搜索并找到了。。 但是无法正确地拾取此


谢谢。

在您链接到它的问题中,基本上是说从
net/http
使用这个函数:

func SetCookie(w ResponseWriter, cookie *Cookie)
所以在你的例子中,不要写

req.AddCookie(&cookie)
你应该写这个

http.SetCookie(w, &cookie)

cookie:=http.cookie{“test”,“tcookie”,“www.dummy.com”,expire,expire.Format(time.UnixDate),86400,true,true,“test=tcookie”,“[]字符串{“test=tcookie”}

应该是这样的:

cookie:=&http.cookie{Name:“test”,Value:“tcookie”,过期时间:time.Now().Add(356*24*time.Hour),HttpOnly:true}

此后

改变

req.AddCookie(&cookie)

http.SetCookie(w,cookie)

最后,因为您的应用程序运行在Google App Engine change上:

func main()


func init()。。。。但是如何在我的本地机器(Windows7 64位)上导入在线软件包,GoSDK中有gopath文件夹。。下载了三个.go文件,这些文件在此会话.go中是必需的,但无法在导入中添加本地路径。gopath文件夹的路径已在环境变量中设置,但仍然出现“解析目录失败”、“无法从so路径导入”等错误。。可以做什么?如果您的GOPATH设置正确,只需按照说明使用
go-get
。无需手动下载文件。您使用的是什么版本的go?键入
go-version
谢谢,我仍然收到相同的错误,比如
go-app-builder:解析输入失败(1个错误)
和带有未标记字段的
composite-struct-literal-net/http.Cookie
我是否遗漏了其他内容?关于这些错误的任何猜测或想法,请尝试完整的测试程序:从链接,但在浏览器“404页未找到”这是显示…非常感谢。也将“func main()”替换为“func init()”。。。。然后它就开始工作了。不客气,不需要将
func main()
更改为
func init()
@Neo。对于Google App Engine,您需要使用
func init()
而不是
func main()
。有点超出了问题的范围,但OP是在Google App Engine上的,你可以从问题的标签中看到……只是一个细节。