lib/almodovar/http_client.rb in almodovar-1.5.5 vs lib/almodovar/http_client.rb in almodovar-1.6.0
- old
+ new
@@ -1,5 +1,6 @@
+require 'addressable/uri'
require 'httpclient'
module Almodovar
class HttpClient
attr_accessor :client,
@@ -11,30 +12,30 @@
delegate :agent_name=,
:connect_timeout=,
:send_timeout=,
:receive_timeout=,
:force_basic_auth=,
- :to => :client
+ to: :client
def initialize
@client = HTTPClient.new
end
- def get(uri, headers = {})
- request(:get, uri, :headers => merge_headers(headers))
+ def get(uri, query = {}, headers = {})
+ request(:get, uri, query: query, headers: merge_headers(headers))
end
- def post(uri, data, headers = {})
- request(:post, uri, :body => data, :headers => merge_headers(headers))
+ def post(uri, data, query = {}, headers = {})
+ request(:post, uri, body: data, query: query, headers: merge_headers(headers))
end
- def put(uri, data, headers = {})
- request(:put, uri, :body => data, :headers => merge_headers(headers))
+ def put(uri, data, query = {}, headers = {})
+ request(:put, uri, body: data, query: query, headers: merge_headers(headers))
end
- def delete(uri, headers = {})
- request(:delete, uri, :headers => merge_headers(headers))
+ def delete(uri, query = {}, headers = {})
+ request(:delete, uri, query: query, headers: merge_headers(headers))
end
private
def merge_headers(headers)
@@ -66,15 +67,21 @@
client.set_auth(domain, username, password)
end
end
def request(method, uri, options = {})
- uri = URI.parse(URI.escape(URI.unescape(uri)))
+ uri = Addressable::URI.parse(uri)
if (requires_auth?)
domain = domain_for(uri)
set_client_auth(domain)
end
- client.request(method, uri, :body => options[:body], :header => options[:headers].stringify_keys || {}, :follow_redirect => true)
+ request_options = {
+ body: options[:body],
+ header: options[:headers].stringify_keys || {},
+ follow_redirect: true
+ }
+ request_options[:query] = options[:query] if options[:query].present?
+ client.request(method, uri, request_options)
rescue HTTPClient::SendTimeoutError => e
raise SendTimeoutError.new(e)
rescue HTTPClient::ReceiveTimeoutError => e
raise ReceiveTimeoutError.new(e)
rescue HTTPClient::ConnectTimeoutError => e