class Sekureco::HttpClient

Public Class Methods

new() click to toggle source
# File lib/sekureco/http_client.rb, line 10
def initialize
  @cookies = {}
end

Public Instance Methods

get(uri) click to toggle source
# File lib/sekureco/http_client.rb, line 14
def get uri
  Sekureco.logger.info "GET #{uri.to_s}"
  HTTP.start(uri.host, uri.port) do |http|
    get_request = HTTP::Get.new uri
    get_request['Cookie'] = cookies
    @curr_response = http.request(get_request)
    set_cookies
  end
  @curr_response
end
post(uri, params = {}) click to toggle source
# File lib/sekureco/http_client.rb, line 25
def post uri, params = {}
  Sekureco.logger.info "POST #{uri.to_s}"
  Sekureco.logger.info "params: #{params}"
  HTTP.start(uri.host, uri.port) do |http|
    post_request = HTTP::Post.new uri
    post_request['Cookie'] = cookies
    post_request.set_form_data(params)
    @curr_response = http.request(post_request)
    set_cookies
  end
  @curr_response
end

Private Instance Methods

cookies() click to toggle source
# File lib/sekureco/http_client.rb, line 52
def cookies
  cookies_field = []
  @cookies.each do |k, v|
    cookies_field << "#{k}=#{v}"
  end
  cookies_field.join("; ")
end
set_cookies() click to toggle source
# File lib/sekureco/http_client.rb, line 40
def set_cookies
  unless @curr_response.nil?
    new_cookies = @curr_response.get_fields('set-cookie')
    unless new_cookies.nil?
      new_cookies.each do |cookie|
        key, value = cookie.split("; ").first.split("=")
        @cookies[key] = value
      end
    end
  end
end