Module: HTTPray

Defined in:
lib/httpray.rb,
lib/httpray/version.rb

Defined Under Namespace

Classes: CircuitBreakerError, Connection, Timeout

Constant Summary collapse

DEFAULT_HEADERS =
{
  "User-Agent" => "HTTPray #{VERSION}",
  "Accept" => "*/*",
  "Connection" => "keep-alive"
}.freeze
VERSION =
"1.1.3".freeze

Class Method Summary collapse

Class Method Details

.request(*args) ⇒ Object



130
131
132
133
134
135
# File 'lib/httpray.rb', line 130

def self.request(*args)
  socket = request!(*args)
  yield(socket) if block_given?
ensure
  socket.close if socket && !socket.closed?
end

.request!(method, uri, headers = {}, body = nil, timeout = 1, ssl_context = nil) ⇒ Object



122
123
124
125
126
127
128
# File 'lib/httpray.rb', line 122

def self.request!(method, uri, headers = {}, body = nil, timeout = 1, ssl_context = nil)
  uri = URI.parse(uri) unless URI === uri
  ssl_context = nil
  ssl_context = OpenSSL::SSL::SSLContext.new if uri.scheme == "https"
  ark = Connection.new(uri.host, uri.port, timeout, ssl_context, 0)
  ark.request!(method, uri, {"Connection" => ""}.merge(headers), body)
end