如何从 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 值?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 CMFCPropertyGridProperty ComboBox 中获取选项?