class Unirest::HttpRequest

Attributes

auth[R]
body[R]
headers[R]
method[R]
url[R]

Public Class Methods

new(method, url, headers = {}, body = nil, auth = nil) click to toggle source
# File lib/unirest/http_request.rb, line 41
def initialize(method, url, headers = {}, body = nil, auth = nil)
  @method = method
  
  if method == :get
    if body.is_a?(Hash) && body.length > 0
      if url.include? "?"
        url += "&"
      else
        url += "?"
      end

      uri = Addressable::URI.new
      uri.query_values = body
      url += uri.query
    end
  else
     @body = body
  end

  unless url =~ URI.regexp
    raise "Invalid URL: #{url}"
  end
  
  @url = url.gsub /\s+/, '%20'
  
  @headers = {}

  if auth != nil && auth.is_a?(Hash)
    user = ""
    password = ""
    if auth[:user] != nil
      user = auth[:user]
    end
    if auth[:password] != nil
      password = auth[:password]
    end

    headers['Authorization'] = "Basic #{["#{user}:#{password}"].pack('m').delete("\r\n")}"

  end


  # Make the header key lowercase
  headers.each_pair {|key, value| @headers[key.downcase] = value }
end

Public Instance Methods

add_header(name, value) click to toggle source
# File lib/unirest/http_request.rb, line 37
def add_header(name, value)
  @headers[name] = value
end