lib/3scale/client/http_client.rb in 3scale_client-2.9.0 vs lib/3scale/client/http_client.rb in 3scale_client-2.10.0

- old
+ new

@@ -37,24 +37,36 @@ def initialize(host, port) @host = host @port = port end - def get_request(path) + def get_request(path, headers: nil) get = Net::HTTP::Get.new(path) get.add_field(*USER_CLIENT_HEADER) get.add_field('Host', @host) + add_request_headers(get, headers) if headers get end - def post_request(path, payload) + def post_request(path, payload, headers: nil) post = Net::HTTP::Post.new(path) post.add_field(*USER_CLIENT_HEADER) post.add_field('Host', @host) + add_request_headers(post, headers) if headers post.set_form_data(payload) post end + + private + + def add_request_headers(req, headers) + if headers + headers.each do |hk, hv| + req.add_field(hk, hv) + end + end + end end class NetHttpPersistent < BaseClient def self.available? prepare @@ -75,19 +87,19 @@ def ssl! @protocol = 'https' end - def get(path) + def get(path, headers: nil) uri = full_uri(path) - @http.request(uri, get_request(path)) + @http.request(uri, get_request(path, headers: headers)) end - def post(path, payload) + def post(path, payload, headers: nil) uri = full_uri(path) - @http.request(uri, post_request(path, payload)) + @http.request(uri, post_request(path, payload, headers: headers)) end def full_uri(path) URI.join "#{@protocol}://#{@host}:#{@port}", path end @@ -105,15 +117,15 @@ def ssl! @http = Net::HTTP.new(@host, @port) @http.use_ssl = true end - def get(path) - @http.request get_request(path) + def get(path, headers: nil) + @http.request get_request(path, headers: headers) end - def post(path, payload) - @http.request post_request(path, payload) + def post(path, payload, headers: nil) + @http.request post_request(path, payload, headers: headers) end end class NetHttpKeepAlive < NetHttp HTTP_CONNECTION = 'connection'.freeze