2010-10-11 74 views
0

我用下面的代码来下载通过POST请求的页面:转换为字符串/文本红宝石

require 'net/http' 
require 'uri' 
res = Net::HTTP.post_form(URI.parse('http://example.com'),{'post'=>'1'}) 
puts res.split("Date") 

我原来使用的网址已被替换example.com

它的工作原理伟大的,但是当我尝试调用分(最后一行),它返回一个错误:

<main>': undefined method分裂”为#(NoMethodError)

我是新来的红宝石,所以我很困惑次是错误的。

+0

我不在计算机上我现在可以测试的东西,所以我不能测试这(这就是为什么我不把它作为答案),但尝试把res.to_s.split(“日期“) – 2010-10-11 15:28:03

+0

它返回这个:# alexy13 2010-10-11 15:31:00

+1

哦,没错。在对象上执行“to_s”将返回对象的名称,并且它在内存中的位置。叹。我需要更多的咖啡。 – 2010-10-11 15:35:43

回答

4

您调用的方法返回一个HTTPResponse对象,所以您需要利用该对象的方法来获取所需内容。可能是这样的:

require 'net/http' 
require 'uri' 
res = Net::HTTP.post_form(URI.parse('http://example.com'),{'post'=>'1'}) 
puts res.body.split("Date") 

注意身体的方法。

或者,如果你想看到所有返回的数据:

require 'net/http' 
require 'uri' 
res = Net::HTTP.post_form(URI.parse('http://example.com'),{'post'=>'1'}) 
puts res.inspect 

希望这有助于!