我想自动检测远程网站的pingback-url,所以我需要解析远程服务器发送的HTTP响应头。我不需要也不想要远程网站的内容,我只是在寻找这样的东西:
X-Pingback: http://www.techcrunch.com/xmlrpc.php
类似于使用 curl:
curl -I "your url"
有没有办法用rails做到这一点?使用 open-uri 时,我只能获取内容,但不能获取标题。
谢谢!奥莱
我想自动检测远程网站的pingback-url,所以我需要解析远程服务器发送的HTTP响应头。我不需要也不想要远程网站的内容,我只是在寻找这样的东西:
X-Pingback: http://www.techcrunch.com/xmlrpc.php
类似于使用 curl:
curl -I "your url"
有没有办法用rails做到这一点?使用 open-uri 时,我只能获取内容,但不能获取标题。
谢谢!奥莱
这不是 Rails 特定的问题,但可以使用核心 Ruby API 解决。
require 'net/http'
url = URI.parse('http://www.google.ca/')
req = Net::HTTP::Head.new(url.path)
res = Net::HTTP.start(url.host, url.port) {|http|
http.request(req)
}
puts res['X-Pingback']
> "http://www.techcrunch.com/xmlrpc.php"
如果您不介意使用 gem,您可以尝试Patron,它是 libcurl 库的 ruby 包装器。用法可能如下所示:
sess = Patron::Session.new
sess.timeout = 10
sess.base_url = "http://myserver.com:9900"
resp = sess.get( "your url" )
headers = resp.headers