class HttpRequest

Public Class Methods

new(url) click to toggle source
# File lib/easy_request/http_request.rb, line 3
def initialize(url)
  @url = url
  @data = nil
  @auth = nil
  @method = nil
  @extra_headers = nil
end

Public Instance Methods

execute_request() click to toggle source
# File lib/easy_request/http_request.rb, line 33
def execute_request
  headers = {
      'content-type' => 'application/json',
      'cache-control' => 'no-cache'
  }

  if @extra_headers
    headers.merge! @extra_headers
  end

  uri = URI.parse(@url)
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE

  case @method
    when 'GET'
      req = Net::HTTP::Get.new(uri.request_uri, headers)
    when 'POST'
      req = Net::HTTP::Post.new(uri.request_uri, headers)
    when 'PUT'
      req = Net::HTTP::Put.new(uri.request_uri, headers)
    when 'DELETE'
      req = Net::HTTP::Delete.new(uri.request_uri, headers)
    else
      raise 'Request method is not defined: '+@method.to_s
  end

  if @auth && @auth.is_a?(Hash)
    req.basic_auth @auth[:user], @auth[:pass]
  end

  req.body = @data

  res = http.request(req)
  
  res.body
end
set_auth(auth) click to toggle source
# File lib/easy_request/http_request.rb, line 19
def set_auth(auth)
  @auth = auth
end
set_data(data) click to toggle source
# File lib/easy_request/http_request.rb, line 23
def set_data(data)
  @data = data.to_json
end
set_extra_headers(headers) click to toggle source
# File lib/easy_request/http_request.rb, line 27
def set_extra_headers(headers)
  if headers.is_a?(Hash)
    @extra_headers = headers
  end
end
set_method(method) click to toggle source
# File lib/easy_request/http_request.rb, line 11
def set_method(method)
  if method == 'GET' || method == 'POST' || method == 'PUT' || method == 'DELETE'
    @method = method
  else
    raise 'Not supported method'
  end
end