Ruby 的 open-uri 和 cookies

标签 ruby cookies open-uri

我想存储来自一个 open-uri 调用的 cookie,并将它们传递给下一个。我似乎找不到合适的文档来执行此操作。如果您能告诉我正确的方法,我将不胜感激。
注意:w3.org 不是实际的 url,但它更短;假装 cookies 在这里很重要。

h1 = open("http://www.w3.org/")
h2 = open("http://www.w3.org/People/Berners-Lee/", "Cookie" => h1.FixThisSpot)

两次反对后更新:虽然这不是反问句,但我保证这是可能的。 风滚草后更新:看到(答案),这是可能的。我花了很长时间,但它有效。

最佳答案

我以为有人会知道,但我猜这不是用 open-uri 完成的。 这是丑陋的版本,既不检查隐私、过期时间、正确的域,也不检查正确的路径:

h1 = open("http://www.w3.org/")
h2 = open("http://www.w3.org/People/Berners-Lee/",
          "Cookie" => h1.meta['set-cookie'].split('; ',2)[0])

是的,它有效。不,它不漂亮,也不完全符合建议,也不处理多个 cookie(按原样)。

显然,HTTP 是一种非常直接的协议(protocol),open-uri 最多可以让您使用它。我想我真正需要知道的是如何从 h1 请求中获取 cookie,以便它可以传递给 h2 请求(那部分我已经知道并展示了).令人惊讶的是,有多少人基本上都想通过告诉我不要使用 open-uri 来回答,而其中只有一个人展示了如何在传递给下一个请求的一个请求中获取 cookie 集。

关于Ruby 的 open-uri 和 cookies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1360808/

相关文章:

java - 我怎样才能用javascript读取JSESSIONID?

ruby-on-rails - 像 facebook 这样的 Rails 中的收件箱消息

ruby-on-rails - 输入数据库的列值?

ruby-on-rails - 使用 eval 运行 ruby​​ 代码,它是 gems,rails

wpf - 在 WPF Web 浏览器控件中删除 cookie

javascript - 过滤存储cookie的JS脚本

ruby - 将 latin1 字符串转换为 utf8?

ruby-on-rails - 猴子修补 use_ssl= 方法适用于 Net :HTTP but not for OpenURI in Ruby 1. 9.3?

ruby - 如何分发 ruby​​ 软件?