Class: Unirest::HttpClient

Inherits:
Object
  • Object
show all
Defined in:
lib/unirest.rb

Class Method Summary collapse

Class Method Details

.internal_request(http_request, timeout) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/unirest.rb', line 52

def self.internal_request(http_request, timeout)      
  # Set the user agent
  http_request.add_header("user-agent", 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 => e
     http_response = e.response
 end

  return Unirest::HttpResponse.new(http_response)
end

.request(method, url, headers, body, auth, timeout, &callback) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
# File 'lib/unirest.rb', line 40

def self.request(method, url, headers, body, auth, timeout, &callback)
  http_request = Unirest::HttpRequest.new(method, url, headers, body, auth)
  
  if callback
    return Thread.new do
      callback.call(self.internal_request(http_request, timeout))
    end
  else
    return self.internal_request(http_request, timeout)
  end
end