如何从 CGI::Cookie.parse 中获取 cookie 值?

Posted

技术标签:

【中文标题】如何从 CGI::Cookie.parse 中获取 cookie 值?【英文标题】:How to get cookie value from CGI::Cookie.parse? 【发布时间】:2022-01-10 22:58:43 【问题描述】:

如何仅使用 Ruby 2.7 的标准库获得合理的 cookie 值?根据docs,#value 应该返回一个值或值列表,但显然不是这样。 c.value 返回c

$ docker run --rm -it library/ruby:2.7
require 'cgi'
c = CGI::Cookie.parse('test=foo')['test']
# => #<CGI::Cookie: "test=foo; path=">
p c.value
# => #<CGI::Cookie: "test=foo; path=">
c.equal? c.value
# => true
# Please, what?

预期结果:foo(如果像%66%6f%6f这样的www-encoded,我想要解码结果foo)。

【问题讨论】:

【参考方案1】:

CGI::Cookie 的父类是Array。现在我们可以弄清楚了:

>> c = CGI::Cookie.parse('test=%66%6f%6f')['test']
=> #<CGI::Cookie: "test=foo; path=">
>> c.size
=> 1
>> c.first
=> "foo"
>> c[0]
=> "foo"

【讨论】:

有趣。没想到is_a? Array.

以上是关于如何从 CGI::Cookie.parse 中获取 cookie 值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在ios中从手机中获取所有图像

如何在快速路由器获取请求中从节点获取中使用获取

如何从 CMFCPropertyGridProperty ComboBox 中获取选项?

如何从 HttpRequestMessage 中获取方法名称?

如何从列表视图中获取值

如何从 KivyMD 文本字段中获取文本?