class Unirest::HttpClient

Public Class Methods

internal_request(http_request, timeout) click to toggle source
# File lib/unirest.rb, line 51
def self.internal_request(http_request, timeout)
  # Set the user agent
  http_request.add_header("user-agent", Unirest.user_agent)
  http_request.add_header("accept-encoding", "gzip")

  http_response = nil

  begin
    case http_request.method
      when :get
        http_response = RestClient::Request.execute(:method => :get, :url => http_request.url, :headers => http_request.headers, :timeout => timeout)
      when :post
         http_response = RestClient::Request.execute(:method => :post, :url => http_request.url, :payload => http_request.body, :headers => http_request.headers, :timeout => timeout)
      when :put
        http_response = RestClient::Request.execute(:method => :put, :url => http_request.url, :payload => http_request.body, :headers => http_request.headers, :timeout => timeout)
      when :delete
        http_response = RestClient::Request.execute(:method => :delete, :url => http_request.url, :payload => http_request.body, :headers => http_request.headers, :timeout => timeout)
      when :patch
        http_response = RestClient::Request.execute(:method => :patch, :url => http_request.url, :payload => http_request.body, :headers => http_request.headers, :timeout => timeout)
    end
 rescue RestClient::RequestTimeout
  raise 'Request Timeout'
 rescue RestClient::Exception => e
     http_response = e.response
  end

  Unirest::HttpResponse.new(http_response)
end
request(method, url, headers, body, auth, timeout, &callback) click to toggle source
# File lib/unirest.rb, line 39
def self.request(method, url, headers, body, auth, timeout, &callback)
  http_request = Unirest::HttpRequest.new(method, url, headers, body, auth)

  if callback
    Thread.new do
      callback.call(self.internal_request(http_request, timeout))
    end
  else
    self.internal_request(http_request, timeout)
  end
end