2010-10-11 5 views
0

chaîne/texte que je suis en utilisant le code suivant pour télécharger une page via une requête POST:Convertir en rubis

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

L'URL I utilisé à l'origine a été remplacé par example.com

Il fonctionne grande, mais quand je tente d'appeler split (dernière ligne), il renvoie une erreur:

<main>': undefined method fendu » pour # (NoMethodError)

Je suis nouveau à ruby, donc je suis confus au sujet de th est une erreur

+0

Je ne suis pas sur un ordinateur, je peux tester des choses en ce moment, donc je ne peux pas tester cela (ce qui explique pourquoi je ne le mets pas comme une réponse) mais essayez de mettre res.to_s.split ("Date ") –

+0

Il renvoie ceci: # alexy13

+1

Oh, c'est vrai. Faire "to_s" sur un objet renvoie le nom de l'objet et son emplacement en mémoire. Soupir. J'ai besoin de plus de café. –

Répondre

4

La méthode que vous appelez renvoie un objet HTTPResponse, vous devez donc utiliser les méthodes de cet objet pour obtenir ce que vous voulez. peut-être quelque chose comme:

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

Notez la méthode du corps.

Ou, si vous voulez voir toutes les données renvoyées:

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

Hope this helps!