Rails:如何获取服务器响应 HTTP 标头?

发布于 2024-07-29 13:50:04 字数 308 浏览 6 评论 0原文

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

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

与使用curl类似:

curl -I "your url"

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

谢谢你! 奥莱

I want to autodetect the pingback-url of remote websites, so I need to parse the HTTP response headers sent by the remote server. I don't need and don't want the contents of the remote website, I'm only looking for something like this:

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

Similar to using curl:

curl -I "your url"

Is there a way to do this with rails? When using open-uri I can only get the contents but not the headers.

Thank you!
Ole

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

So要识趣 2024-08-05 13:50:04

这不是 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"

This is not a Rails specific question, but it can be solved with the core 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"
我家小可爱 2024-08-05 13:50:04

如果您不介意使用 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

If you don't mind using a gem, you might try Patron, which is a ruby wrapper for the libcurl library. Usage might look something like this:

sess = Patron::Session.new
sess.timeout = 10
sess.base_url = "http://myserver.com:9900"
resp = sess.get( "your url" )
headers = resp.headers
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文