Module: HTTPray

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

Defined Under Namespace

Classes: Connection, Timeout

Constant Summary collapse

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

Class Method Summary collapse

Class Method Details

.request(*args) ⇒ Object



116
117
118
119
120
121
# File 'lib/httpray.rb', line 116

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



108
109
110
111
112
113
114
# File 'lib/httpray.rb', line 108

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