go - 无法读取JSON Cookie

标签 go cookies

我有一种情况,我想在Go中读取Cookie的内容。但是,cookie的内容为JSON格式。 (更改Cookie的格式不是一种选择)

例如,cookie的内容可能是:

{"id":"abc","data":"information","on_off":false}

在JavaScript中,我可以轻松读取cookie的内容并进行解析。

另一方面,使用Go时,当我尝试使用r.Cookie('my_cookie')读取Cookie时,出现以下错误:http: named cookie not present

如果我将cookie修改为一个简单的字符串,则它将按预期工作。

有谁知道在这种情况下该怎么办?难道无法在Go中读取这样的cookie吗?

当我使用r.Header.Get["Cookie"]时,它返回的输出确实包含cookie和它的JSON值(在所有其他cookie中列出)

最佳答案

JSON使用许多characters not permitted in HTTP cookie values per the RFC-例如,不允许使用双引号,逗号和空格字符。通过cookie传输JSON数据的最简便的方法可能是在设置cookie时对Base64进行编码,而在使用cookie时通过 encoding/base64 包对Base64对其进行解码。

关于go - 无法读取JSON Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58087294/

相关文章:

javascript - Javascript cookie 的用途是什么?

json - 如何处理以base64编码为输入的[]byte(字节数组)

google-app-engine - 在 golang 中将字符串转换为 json,反之亦然?

session - session 的最佳实践( gorilla / session )

go - 调用函数后重定向到另一个端点

java - 使用 OkHttp 3 自动处理 cookie

c# - 是否可以在OnInit事件中设置cookie并在同一页面读取?

amazon-web-services - 去 AWS 测试无效登录

image - cookie 是否与图像请求一起发送?

http - 是否可以在没有 cookie 的情况下发送 HTTP 请求?