Ruby Net::HTTP:: obtenir et réponses JSON
J'essaie de me connecter à une API et de récupérer les résultats json avec mon application rails, mais cela ne semble pas fonctionner.
Prenez par exemple:
@request = Net::HTTP::Get.new "http://example.com/?search=thing&format=json"
Lorsque j'essaie l'url dans mon navigateur, cela fonctionne! et je reçois des données JSON, mais quand j'essaie cela dans Ruby, le corps est nul.
>> y @request
--- !ruby/object:Net::HTTP::Get
body:
body_stream:
header:
accept:
- "*/*"
user-agent:
- Ruby
method: GET
path: http://example.com/?search=thing&format=json
request_has_body: false
response_has_body: true
Des idées?
24
demandé sur
JP Silvashy
2010-09-05 22:27:07
2 réponses
Vous devez réellement envoyer la demande et de récupérer un objet de réponse, comme ceci:
response = Net::HTTP.get_response("example.com","/?search=thing&format=json")
puts response.body //this must show the JSON contents
Cordialement!
PS: lors de l'utilisation de la lib HTTP de ruby, cette page a quelques exemples utiles.
40
répondu
Pablo Fernandez
2010-09-05 22:52:24
J'utilise généralement open-uri
require 'open-uri'
content = open("http://your_url.com").read
`
42
répondu
jordinl
2010-09-05 18:31:52