class HTTP::Request

def initialize(opts)

Options Hash: (**opts)
  • :body (String) --
  • :proxy (Hash) --
  • :headers (Hash) --
  • :uri (HTTP::URI, #to_s) --
  • :verb (#to_s) -- HTTP request method
  • :version (String) --
def initialize(opts)
  @verb   = opts.fetch(:verb).to_s.downcase.to_sym
  @uri    = normalize_uri(opts.fetch :uri)
  @scheme = @uri.scheme.to_s.downcase.to_sym if @uri.scheme
  fail(UnsupportedMethodError, "unknown method: #{verb}") unless METHODS.include?(@verb)
  fail(UnsupportedSchemeError, "unknown scheme: #{scheme}") unless SCHEMES.include?(@scheme)
  @proxy   = opts[:proxy] || {}
  @body    = opts[:body]
  @version = opts[:version] || "1.1"
  @headers = HTTP::Headers.coerce(opts[:headers] || {})
  @headers[Headers::HOST]        ||= default_host_header_value
  @headers[Headers::USER_AGENT]  ||= USER_AGENT
end