1

我想自动检测远程网站的pingback-url,所以我需要解析远程服务器发送的HTTP响应头。我不需要也不想要远程网站的内容,我只是在寻找这样的东西:

X-Pingback: http://www.techcrunch.com/xmlrpc.php

类似于使用 curl:

curl -I "your url"

有没有办法用rails做到这一点?使用 open-uri 时,我只能获取内容,但不能获取标题。

谢谢!奥莱

4

2 回答 2

5

这不是 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"
于 2009-07-28T15:47:54.090 回答
2

如果您不介意使用 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
于 2009-07-28T15:52:56.750 回答