Reputation: 1165
Hi this is my very first Ruby program. I'm trying to write a simple ruby app to make a request to a URL and see if it's available. If it is, it'll print OK and else it'll print false.
This is what I've got so far, can you please assist, do I need to import any libs?
class WebRequest
def initialize(name)
@name = name.capitalize
end
def makeRequest
puts "Hello #{@name}!"
@uri = URI.parse("https://example.com/some/path")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE # read into this
@data = http.get(uri.request_uri)
end
end
req = WebRequest.new("Archie")
req.makeRequest
Upvotes: 0
Views: 268
Reputation: 1165
This is what I've ended up with
require 'net/http'
class WebRequest
def initialize()
@url_addr = 'http://www.google.com/'
end
def makeRequest
puts ""
begin
url = URI.parse(@url_addr)
req = Net::HTTP::Get.new(url.path)
res = Net::HTTP.start(url.host, url.port) {|http|
http.request(req)
}
puts "OK Connected to #{@url_addr} with status code #{res.code}"
rescue
puts "Failed to connect to #{@url_addr}"
end
end
end
req = WebRequest.new()
req.makeRequest
Upvotes: 0
Reputation: 8840
Here is sample code to do any request:
require 'net/http'
require 'uri'
url = URI.parse('http://www.example.com/index.html')
req = Net::HTTP::Get.new(url.path)
res = Net::HTTP.start(url.host, url.port) do |http|
http.request(req)
end
puts res.body
Upvotes: 2
Reputation: 988
gem install httparty
then
require 'httparty'
response = HTTParty.get('https://example.com/some/pathm')
puts response.body
Upvotes: 1
Reputation: 9752
Something simpler:
[1] pry(main)> require 'open-uri'
=> true
[2] pry(main)> payload = open('http://www.google.com')
=> #<File:/var/folders/2p/24pztc5s63d69hhx81002bq80000gn/T/open-uri20131217-84948-ttwnho>
[3] pry(main)> payload.inspect
=> "#<Tempfile:/var/folders/2p/24pztc5s63d69hhx81002bq80000gn/T/open-uri20131217-84948-ttwnho>"
[4] pry(main)> payload.read
payload.read
would return the response body and you can easy use payload as File
object since it is an instance of Tempfile
Upvotes: 0