lib/active_merchant/common/connection.rb in bitfluent-activemerchant-1.5.1.1 vs lib/active_merchant/common/connection.rb in bitfluent-activemerchant-1.15.1
- old
+ new
@@ -39,17 +39,19 @@
attr_accessor :pem
attr_accessor :pem_password
attr_accessor :wiredump_device
attr_accessor :logger
attr_accessor :tag
+ attr_accessor :ignore_http_status
def initialize(endpoint)
@endpoint = endpoint.is_a?(URI) ? endpoint : URI.parse(endpoint)
@open_timeout = OPEN_TIMEOUT
@read_timeout = READ_TIMEOUT
@retry_safe = RETRY_SAFE
@verify_peer = VERIFY_PEER
+ @ignore_http_status = false
end
def request(method, body, headers = {})
retry_exceptions do
begin
@@ -69,13 +71,12 @@
raise ArgumentError, "Unsupported request method #{method.to_s.upcase}"
end
end
info "--> %d %s (%d %.4fs)" % [result.code, result.message, result.body ? result.body.length : 0, realtime], tag
- response = handle_response(result)
- debug response
- response
+ debug result.body
+ result
rescue EOFError => e
raise ConnectionError, "The remote server dropped the connection"
rescue Errno::ECONNRESET => e
raise ConnectionError, "The remote server reset the connection"
rescue Errno::ECONNREFUSED => e
@@ -146,15 +147,19 @@
raise
end
end
def handle_response(response)
- case response.code.to_i
- when 200...300
- response.body
+ if @ignore_http_status then
+ return response.body
else
- raise ResponseError.new(response)
+ case response.code.to_i
+ when 200...300
+ response.body
+ else
+ raise ResponseError.new(response)
+ end
end
end
def debug(message, tag = nil)
log(:debug, message, tag)
@@ -167,6 +172,6 @@
def log(level, message, tag)
message = "[#{tag}] #{message}" if tag
logger.send(level, message) if logger
end
end
-end
\ No newline at end of file
+end