module Optimizely::Helpers::HttpUtils
Public Instance Methods
make_request(url, http_method, request_body = nil, headers = {}, read_timeout = nil, proxy_config = nil)
click to toggle source
# File lib/optimizely/helpers/http_utils.rb, line 26 def make_request(url, http_method, request_body = nil, headers = {}, read_timeout = nil, proxy_config = nil) # makes http/https GET/POST request and returns response # uri = URI.parse(url) if http_method == :get request = Net::HTTP::Get.new(uri.request_uri) elsif http_method == :post request = Net::HTTP::Post.new(uri.request_uri) request.body = request_body if request_body else return nil end # set headers headers&.each do |key, val| request[key] = val end # do not try to make request with proxy unless we have at least a host http_class = if proxy_config&.host Net::HTTP::Proxy( proxy_config.host, proxy_config.port, proxy_config.username, proxy_config.password ) else Net::HTTP end http = http_class.new(uri.host, uri.port) http.read_timeout = read_timeout if read_timeout http.use_ssl = uri.scheme == 'https' http.request(request) end