如何从 CGI::Cookie.parse 获取 cookie 值?
How to get cookie value from CGI::Cookie.parse?
如何仅使用 Ruby 2.7 中的标准库获得合理的 cookie 值?根据 docs,#value
应该是 return 一个值或一个值列表,但显然不是这样。 c.value
returns 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
(如果 www 编码像 %66%6f%6f
,我想要解码结果 foo
)。
CGI::Cookie
的父级 class 是 Array
。现在我们可以弄明白了:
>> c = CGI::Cookie.parse('test=%66%6f%6f')['test']
=> #<CGI::Cookie: "test=foo; path=">
>> c.size
=> 1
>> c.first
=> "foo"
>> c[0]
=> "foo"
如何仅使用 Ruby 2.7 中的标准库获得合理的 cookie 值?根据 docs,#value
应该是 return 一个值或一个值列表,但显然不是这样。 c.value
returns 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
(如果 www 编码像 %66%6f%6f
,我想要解码结果 foo
)。
CGI::Cookie
的父级 class 是 Array
。现在我们可以弄明白了:
>> c = CGI::Cookie.parse('test=%66%6f%6f')['test']
=> #<CGI::Cookie: "test=foo; path=">
>> c.size
=> 1
>> c.first
=> "foo"
>> c[0]
=> "foo"