def initialize args
@method = args[:method] or raise ArgumentError, "must pass :method"
@headers = args[:headers] || {}
if args[:url]
@url = process_get_params(args[:url], headers)
else
raise ArgumentError, "must pass :url"
end
@cookies = @headers.delete(:cookies) || args[:cookies] || {}
@payload = Payload.generate(args[:payload])
@user = args[:user]
@password = args[:password]
@timeout = args[:timeout]
@open_timeout = args[:open_timeout]
@block_response = args[:block_response]
@raw_response = args[:raw_response] || false
@verify_ssl = args[:verify_ssl] || false
@ssl_client_cert = args[:ssl_client_cert] || nil
@ssl_client_key = args[:ssl_client_key] || nil
@ssl_ca_file = args[:ssl_ca_file] || nil
@tf = nil
@max_redirects = args[:max_redirects] || 10
@processed_headers = make_headers headers
@args = args
end