views:

44

answers:

2

I'm trying to connect to an API and retrieve the json results with my rails app, however it doesn't seem to work.

Take for example:

@request = Net::HTTP::Get.new "http://example.com/?search=thing&format=json"

When I try the url in my browser it works! and I get JSON data, however when I try that in Ruby the body is nil.

>> 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

Any thoughts?

+1  A: 

I usually use open-uri

require 'open-uri'
content = open("http://your_url.com").read

`

jordinl
+2  A: 

You need to actually send the request and retrieve a response object, like this:

response = Net::HTTP.get_response("example.com","/?search=thing&format=json")
puts response.body //this must show the JSON contents

Regards!

PS: While using ruby's HTTP lib, this page has some useful examples.

Pablo Fernandez
Joseph Silvashy
wow you're right. sorry for that (editing)
Pablo Fernandez