235 votes

Comment faire une demande HTTP GET utilisant Ruby on Rails ?

Je voudrais prendre des informations sur un autre site Web. Donc (peut-être) je devrais faire une demande pour que le site Web (dans mon cas une demande HTTP GET) et recevoir la réponse.

Comment puis-je faire cela avec Ruby on Rails ?

Si c’est possible, c’est une approche correcte à utiliser dans mes contrôleurs ?

324voto

João Silva Points 36619

Vous pouvez utiliser Ruby `` classe :

106voto

stef Points 6478

Net::http est construit en Ruby, mais avouons-le, souvent il est plus facile pas d’utiliser son style des années 1980 encombrant, essayez une alternative de niveau supérieure :

90voto

user2454031 Points 345

OpenURI est le meilleur ; C’est aussi simple que

78voto

<pre><code></code><p><a href="http://travisonrails.com/2007/11/07/http-get-and-post-requests-with-ruby">ce lien</a> pour plus d’informations.</p></pre>

13voto

Mark Thomas Points 19281

Je préfère httpclient plus de Net::HTTP.

client = HTTPClient.new
puts client.get_content('http://www.example.com/index.html')

HTTParty est un bon choix si vous êtes à faire une classe qui est un client pour un service. C'est une pratique mixin qui vous donne 90% de ce que vous avez besoin. Voir comment court le Google et Twitter clients sont dans les exemples.

Et pour répondre à votre deuxième question: non, je ne mettrais pas cette fonctionnalité dans un contrôleur--j'utiliserais un modèle à la place si possible d'encapsuler les détails (peut-être en utilisant HTTParty) et il suffit de l'appeler à partir du contrôleur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X