class Http::GET

Public Class Methods

new(url, params={}, headers={}) click to toggle source
# File lib/xhttp/get.rb, line 12
def initialize(url, params={}, headers={})
  @uri = URI(url)
  @params = params
  @headers = headers

  @response_headers = {}
  @response_content = nil
  @response_status_message = nil
  @response_status_code = nil
end

Public Instance Methods

content() click to toggle source
# File lib/xhttp/get.rb, line 31
def content
  @response_content
end
headers() click to toggle source
# File lib/xhttp/get.rb, line 35
def headers
  @response_headers
end
json() click to toggle source
# File lib/xhttp/get.rb, line 39
def json
  if @response_headers['content-type'] != 'application/json'
    abort '- Response content is not JSON data'
  end

  JSON.parse(@response_content)
end
request() click to toggle source
# File lib/xhttp/get.rb, line 47
def request
  req = Net::HTTP::Get.new(@uri)
  req['user-agent'] = 'xhttp/0.1.0'

  ###
  #
  # Set request headers
  #
  ###
  @headers.map do |header|
    req[header[0].to_s.downcase] = header[1]
  end

  response = Net::HTTP.start(@uri.hostname, @uri.port) do |http|
    http.request(req)
  end

  @response_status_code = response.code
  @response_status_message = response.message
  @response_content = response.body
  response.each_header do |header|
    @response_headers[header] = response[header]
  end
end
status_code() click to toggle source
# File lib/xhttp/get.rb, line 23
def status_code
  @response_status_code
end
status_message() click to toggle source
# File lib/xhttp/get.rb, line 27
def status_message
  @response_status_message
end