ruby - 如何在单个 Webrick 响应中设置多个 cookie?

标签 ruby cookies setcookie webrick

我使用 Webrick 来测试我的 HTTP 客户端,我需要测试它如何获取和设置 cookie。

维基百科 provides此类响应的示例:

HTTP/1.0 200 OK
Content-type: text/html
Set-Cookie: theme=light
Set-Cookie: sessionToken=abc123; Expires=Wed, 09 Jun 2021 10:18:14 GMT
...

但如果我这样做

server.mount_proc ?/ do |req, res|
  res["set-cookie"] = %w{ 1=2 2=3 }

整个数组变成一个 cookie:"[\"1=2\",\"2=3\"]"

然后在WEBrick::HTTPResponse source code我再次看到 @header = Hash.new 这可能意味着您不能重复 header 键。

这不可能吗?!

更新:

这让我没有希望:

最佳答案

应该使用另一种方法来代替 res[...]=:

res.cookies.push WEBrick::Cookie.new("1", "2")
res.cookies.push WEBrick::Cookie.new("3", "4")
res.cookies.push WEBrick::Cookie.new("1", "5")

关于ruby - 如何在单个 Webrick 响应中设置多个 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56180538/

相关文章:

ruby - 将 ruby​​ 散列扁平化为数组,并删除键

Tomcat - cookie 值中包含 ':' 的 cookie

ruby-on-rails - 关于基于浏览器的在线产品目录的开发框架的建议?

Rubygems:可以在 gem 分发中使用符号链接(symbolic link)吗?

ruby-on-rails - 从 Controller 中删除 Cookie

c# - Nitpicky ReSharper 行为,对 Request.Cookies 的空引用

cookies - IE8 不保存 cookie 值?

reactjs - Set-Cookie 来自服务器的响应,但不存储在存储 cookie 中

ruby - Homebrew 如何检查已安装的 gem?

javascript - 在揭示模块模式中返回 jQuery Promise