Method: Insta::API.http

Defined in:
lib/insta/api.rb

.http(args) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/insta/api.rb', line 39

def self.http(args)
  args[:url] = URI.parse(args[:url])
  proxy = args[:proxy]
  if proxy
    http = Net::HTTP::Proxy(proxy.dig(:host), proxy.dig(:port), proxy.dig(:username), proxy.dig(:password)).new(args[:url].host, args[:url].port)
  else
    http = Net::HTTP.new(args[:url].host, args[:url].port)
  end

  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
  request = nil
  if args[:method] == 'POST'
    request = Net::HTTP::Post.new(args[:url].path)
  elsif args[:method] == 'GET'
    request = Net::HTTP::Get.new(args[:url].path + (!args[:url].nil? ? '?' + args[:url].query : ''))
  end

  request.initialize_http_header(self.http_header(args))
  request.body = args.key?(:body) ? args[:body] : nil
  http.request(request)
end