2009-08-27 97 views
12

在PHP中我可以這樣做:如何在Ruby中獲取http請求的內容?

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

我怎麼會做同樣的事情在Ruby中

我一直在谷歌上搜索了半個多小時,來了完全(或部分Rails的方法是什麼?)短。

回答

19

標準庫包open-uri是你追求的:

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

這與Net :: HTTP有何不同? – 2009-08-27 17:35:14

+1

在這種情況下,並不多。但是,該包提供了許多有用的快捷方式。閱讀http://www.ruby-doc.org/stdlib/上的文檔 – 2009-08-28 14:05:26

0

您認爲嘗試

<%= request.inspect %> 
+0

嗯......也許我並不清楚,我試圖獲得外部的東西,而不是在我的應用程序。 – 2009-08-27 04:56:25

+0

我正在讀它作爲「我如何得到一個請求對象的內容」,而不是一個網頁的內容,我的壞。 – 2009-08-27 06:18:53

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

不知道爲什麼我沒有發現這點。除非有更好的方法,否則我會繼續這樣做!

0

使用net/HTTP庫,如下所示:

require 'net/http' 

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