如何在Ruby中获取HTTP请求的内容?

13

在 PHP 中我可以这样做:

$request = "http://www.example.com/someData";
$response = file_get_contents($request);

我该如何在Ruby(或者Rails的某个方法中)做同样的事情?

我已经谷歌搜索了半个小时,但是完全没有结果。

4个回答

20

你需要的是标准库包open-uri

require 'open-uri'
contents = open('http://www.example.com') {|io| io.read}
# or
contents = URI.parse('http://www.example.com').read

这与Net :: HTTP有什么不同? - Ryan Florence
1
在这种情况下,不是很多。然而,该软件包提供了许多有用的快捷方式。请阅读http://www.ruby-doc.org/stdlib/上的文档。 - glenn jackman

11
require 'net/http'
Net::HTTP.get(URI.parse('http://www.example.com/index.html'))

不确定为什么我之前没有发现这个。除非有更好的方法,否则我会选择这个!


2
使用net/http库如下所示:
require 'net/http'

response = Net::HTTP.get_response('mysite.com','/api/v1/messages')
p response.body

0

在你的视角中尝试

<%= request.inspect %>

嗯...也许我表达不够清楚,我正在尝试获取一些外部的东西,而不是我的应用程序内部的内容。 - Ryan Florence
我把它看成是“如何获取请求对象的内容”,而不是网页的内容,我的错。 - Mike Buckbee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接