class HTTP::Client

def request(verb, uri, opts = {})

Make an HTTP request
def request(verb, uri, opts = {})
  opts    = @default_options.merge(opts)
  uri     = make_request_uri(uri, opts)
  headers = make_request_headers(opts)
  body    = make_request_body(opts, headers)
  proxy   = opts.proxy
  req = HTTP::Request.new(
    :verb    => verb,
    :uri     => uri,
    :headers => headers,
    :proxy   => proxy,
    :body    => body
  )
  res = perform(req, opts)
  return res unless opts.follow
  Redirector.new(opts.follow).perform(req, res) do |request|
    perform(request, opts)
  end
end