Daniel Doubrovkine bio photo

Daniel Doubrovkine

aka dB., @awscloud, former CTO @artsy, +@vestris, NYC

Email Twitter LinkedIn Github Strava
Creative Commons License

Making HTTPs requests seems oddly difficult. Why can’t an HTTP library just figure things out for me like curl does? It mostly can.


You have to breakup the URL into a host, port and path, then make a request with use_ssl.

$ irb

require 'net/http'

uri = URI::parse("https://artsy.net/api/v1/system/up")
Net::HTTP.start uri.host, uri.port, use_ssl: (uri.scheme == "https") do |http|
 request = Net::HTTP::Get.new(uri.path)
 response = http.request request
 puts response.body


A little simpler, superagent, also known as “ajax with less suck”, can take care of everything.

$ npm install -g superagent

$ coffee

http = require('superagent')
http.get('https://artsy.net/api/v1/system/up').end((err, res) -> console.log res.body)