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