Class: AWS::Core::Http::NetHttpHandler
- Inherits:
-
Object
- Object
- AWS::Core::Http::NetHttpHandler
- Defined in:
- lib/aws/core/http/net_http_handler.rb
Overview
NetHttpHandler
This is the default HTTP handler for the aws-sdk gem. It uses Ruby’s Net::HTTP to make requests. It uses persistent connections and a connection pool.
Instance Attribute Summary collapse
- #pool ⇒ Net::HTTP::ConnectionPool readonly
Instance Method Summary collapse
-
#handle(request, response) ⇒ nil
Given a populated request object and an empty response object, this method will make the request and them populate the response.
-
#initialize(options = {}) ⇒ NetHttpHandler
constructor
A new instance of NetHttpHandler.
Constructor Details
#initialize(options = {}) ⇒ NetHttpHandler
Returns a new instance of NetHttpHandler.
29 30 31 |
# File 'lib/aws/core/http/net_http_handler.rb', line 29 def initialize = {} @pool = Net::HTTP::ConnectionPool.new() end |
Instance Attribute Details
#pool ⇒ Net::HTTP::ConnectionPool (readonly)
34 35 36 |
# File 'lib/aws/core/http/net_http_handler.rb', line 34 def pool @pool end |
Instance Method Details
#handle(request, response) ⇒ nil
Given a populated request object and an empty response object, this method will make the request and them populate the response.
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/aws/core/http/net_http_handler.rb', line 42 def handle request, response = {} [:port] = request.port [:ssl] = request.use_ssl? [:proxy_uri] = request.proxy_uri [:ssl_verify_peer] = request.ssl_verify_peer? [:ssl_ca_file] = request.ssl_ca_file if request.ssl_ca_file [:ssl_ca_path] = request.ssl_ca_path if request.ssl_ca_path connection = pool.connection_for(request.host, ) connection.read_timeout = request.read_timeout begin http_response = connection.request(build_net_http_request(request)) response.body = http_response.body response.status = http_response.code.to_i response.headers = http_response.to_hash rescue Timeout::Error, Errno::ETIMEDOUT => e response.timeout = true end nil end |