uninitialized constant Net::HTTPS (NameError)

12,098

Solution 1

In Ruby 2.4.1 enable ssl as a parameter of Net::HTTP.start

Net::HTTP.start(uri.host, uri.port, use_ssl: true)

https://ruby-doc.org/stdlib-2.4.1/libdoc/net/http/rdoc/Net/HTTP.html#class-Net::HTTP-label-HTTPS

Solution 2

Use Net:HTTP and enable SSL instead of using Net::HTTPS and disabling SSL.

Example:

http = Net::HTTP.new('api.clickbank.com')
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

Solution 3

You actually don't want to disable ssl as that API requires it. I was able to get it working like so based on the documentation for http found here: http://ruby-doc.org/stdlib-2.1.1/libdoc/net/http/rdoc/Net/HTTP.html

require 'net/http'

uri = URI('https://api.clickbank.com/rest/1.3/orders/list')
req = Net::HTTP::Get.new(uri)
# set headers on the request
req['Authorization'] = '<< DEVKEY >>:<< APIKEY>>'
req['Accept'] = 'application/json'
# perform the request
resp, data = Net::HTTP.start(uri.hostname, uri.port) {|http|
  http.request(req)
}

puts 'Code = ' + resp.code
puts 'Message = ' + resp.message
resp.each {|key, val| puts key + ' = ' + val}
puts data
Share:
12,098
Jesse MacDougall
Author by

Jesse MacDougall

Updated on June 21, 2022

Comments

  • Jesse MacDougall
    Jesse MacDougall almost 2 years

    I am trying to pull campaign stats from Clickbank API in ruby. When I run the sample code Clickbank provided. I get the following error:

    uninitialized constant Net::HTTPS (NameError). What am I missing?

    Example Code.

    require 'net/http'
    require 'net/https'
    
    http = Net::HTTPS.new('api.clickbank.com')
    http.use_ssl = false
    path = '/rest/1.3/orders/list'
    
    headers = {
      'Authorization' => '<< DEVKEY >>:<< APIKEY>>',
      'Accept' => 'application/json'
    }
    
    resp, data = http.get(path, nil, headers)
    
    puts 'Code = ' + resp.code
    puts 'Message = ' + resp.message
    resp.each {|key, val| puts key + ' = ' + val}
    puts data
    

    Yes I put my dev and api key into