gpt4 book ai didi

ruby-on-rails - 使用 cookie 制作 Ruby Net::HTTP::Get 请求

转载 作者:数据小太阳 更新时间:2023-10-29 06:52:38 26 4
gpt4 key购买 nike

我想通过 ruby​​ 打开我的 stackoverflow.com 页面。
我希望看到它就像我通过了身份验证一样。

我从 Google Chrome 中获取了 usr cookie 并创建了以下代码段:

require 'net/http'
require 'cgi'

url = "http://stackoverflow.com/users/1650525/alex-smolov"
uri = URI(url)
http = Net::HTTP.new(uri.host, 80)
request = Net::HTTP::Get.new(uri.request_uri)

cookie = CGI::Cookie.new("usr", "[my cookie is here]")
request['Cookie'] = cookie
r = http.request(request)
puts r.body

它确实输出了一个页面,但我在那里没有经过身份验证。

是否可以使用 cookie 在 Ruby 中发出 Net::HTTP::Get 请求?

最佳答案

您需要调用CGI::Cookie.to_s方法。

request['Cookie'] = cookie.to_s

使用/不使用 .to_s 尝试以下代码。

require 'net/http'
require 'cgi'

uri = URI("http://httpbin.org/cookies")
http = Net::HTTP.new(uri.host, 80)
request = Net::HTTP::Get.new(uri.request_uri)
cookie1 = CGI::Cookie.new('usr', 'blah')
request['Cookie'] = cookie1.to_s # <---
r = http.request(request)
puts r.body

更新

正如提到的另一个答案,结果字符串用于服务器输出。你需要去掉 ; path=部分。

CGI::Cookie.new('usr', 'value').to_s.sub(/; path=$/, '')

关于ruby-on-rails - 使用 cookie 制作 Ruby Net::HTTP::Get 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22593778/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com