【问题标题】:How to get cookie value from CGI::Cookie.parse?如何从 CGI::Cookie.parse 中获取 cookie 值?
【发布时间】: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)。

【问题讨论】:

    标签: ruby cookies cgi


    【解决方案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.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-17
    • 2015-08-14
    • 1970-01-01
    • 2015-02-23
    • 2013-02-12
    • 1970-01-01
    • 2013-09-19
    相关资源
    最近更新 更多