Ruby on rails 如何在OpenURI(Ruby)中发送自定义头并检查它们

Ruby on rails 如何在OpenURI(Ruby)中发送自定义头并检查它们,ruby-on-rails,ruby,ruby-on-rails-3,open-uri,Ruby On Rails,Ruby,Ruby On Rails 3,Open Uri,在以下文档中找到此项: 附加的头字段可以由可选的散列参数指定 open("http://www.ruby-lang.org/en/", "User-Agent" => "Ruby/#{RUBY_VERSION}", "From" => "foo@bar.invalid", "Referer" => "http://www.ruby

在以下文档中找到此项:

附加的头字段可以由可选的散列参数指定

 open("http://www.ruby-lang.org/en/",
   "User-Agent" => "Ruby/#{RUBY_VERSION}",
   "From" => "foo@bar.invalid",
   "Referer" => "http://www.ruby-lang.org/") {|f|
   # ...
 }
有人能告诉我如何检查这是否正常工作吗

有人能告诉我如何检查他们[附加标题字段]是否正常工作吗

您可以使用监听特定端口,例如2000:

$nc-l 2000
并相应地将主机更改为
localhost:2000

# open.rb
require 'open-uri'

open("http://localhost:2000/",
  "User-Agent" => "Ruby/#{RUBY_VERSION}",
  "From" => "foo@bar.invalid",
  "Referer" => "http://www.ruby-lang.org/") {|f|
   # ...
}
通过运行程序

$ ruby open.rb
将使netcat显示以下内容:

$nc-l 2000
GET/HTTP/1.1
用户代理:Ruby/2.3.1
发件人:foo@bar.invalid
推荐人:http://www.ruby-lang.org/
接受编码:gzip;q=1.0,放气;q=0.6,同一性;q=0.3
接受:*/*
主机:本地主机:2000

显然,标题工作正常。(他们当然知道)

首先要知道的是OpenURI是Ruby HTTP工具包中使用最多的代码之一,它有很多详细的检查和测试。结果,机会真的很好,它正在做它应该做的。因此,让我们扭转这一局面,以堆栈溢出的方式进行:向我们展示您正在做的事情,并解释为什么您认为它没有做您想要的事情。请参阅“”和“”,包括链接页面。