ruby - 在 Ruby 中发出 HEAD 请求

标签 ruby net-http

我是 ruby​​ 的新手,有 python 背景 我想向 URL 发出头请求并检查一些信息,例如文件是否存在于服务器上以及时间戳、etag 等,我无法在 RUBY 中完成此操作。

在 Python 中:

import httplib2
print httplib2.Http().request('url.com/file.xml','HEAD')

在 Ruby 中:我试过这个并抛出一些错误

require 'net/http'

Net::HTTP.start('url.com'){|http|
   response = http.head('/file.xml')
}
puts response


SocketError: getaddrinfo: nodename nor servname provided, or not known
    from /Users/comcast/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:877:in `initialize'
    from /Users/comcast/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:877:in `open'
    from /Users/comcast/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:877:in `block in connect'
    from /Users/comcast/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/timeout.rb:51:in `timeout'
    from /Users/comcast/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:876:in `connect'
    from /Users/comcast/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:861:in `do_start'
    from /Users/comcast/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:850:in `start'
    from /Users/comcast/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:582:in `start'
    from (irb):2
    from /Users/comcast/.rvm/rubies/ruby-2.0.0-p0/bin/irb:16:in `<main>'

最佳答案

我知道这个问题已经得到解答,但我也不得不经历一些困难。下面是一些更具体的开始:

#!/usr/bin/env ruby

require 'net/http'
require 'net/https' # for openssl

uri = URI('http://stackoverflow.com')
path = '/questions/16325918/making-head-request-in-ruby'

response=nil
http = Net::HTTP.new(uri.host, uri.port)
# http.use_ssl = true                            # if using SSL
# http.verify_mode = OpenSSL::SSL::VERIFY_NONE   # for example, when using self-signed certs

response = http.head(path)
response.each { |key, value| puts key.ljust(40) + " : " + value }

关于ruby - 在 Ruby 中发出 HEAD 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16325918/

相关文章:

ruby-on-rails - Heroku:如何将 seeds.rb 推送到现有的 Rails 应用程序?

ruby-on-rails - 在 RoR 中,如何从 "Failed to open TCP connection ... (general SOCKS server failure)"错误中恢复?

ruby - 在 ruby​​ 中合并和附加哈希

ruby-on-rails - Rails 上的 Ruby/PgSQL 错误启动 : cannot load such file -- pg_ext (LoadError)

ruby-on-rails - 通过 cygwin 为 GITHUB 设置公钥/私钥

ruby - 使用 Watir 进行 Gmail 注册访问网页元素

golang webservice意外崩溃,没有错误

ssl - 如何在 GO 中创建带有 ca 证书的 tls 客户端?

ruby-on-rails - 如何挽救 "sub"错误?

Ruby 发送 xml 到服务器