我有一种情况,我想在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/