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, &read_block) ⇒ 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.
42 43 44 |
# File 'lib/aws/core/http/net_http_handler.rb', line 42 def initialize = {} @pool = Net::HTTP::ConnectionPool.new() end |
Instance Attribute Details
#pool ⇒ Net::HTTP::ConnectionPool (readonly)
47 48 49 |
# File 'lib/aws/core/http/net_http_handler.rb', line 47 def pool @pool end |
Instance Method Details
#handle(request, response, &read_block) ⇒ nil
Given a populated request object and an empty response object, this method will make the request and them populate the response.
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/aws/core/http/net_http_handler.rb', line 55 def handle request, response, &read_block = {} [: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 begin connection = pool.connection_for(request.host, ) connection.read_timeout = request.read_timeout connection.request(build_net_http_request(request)) do |http_resp| response.status = http_resp.code.to_i response.headers = http_resp.to_hash if block_given? and response.status < 300 http_resp.read_body(&read_block) else response.body = http_resp.read_body end end rescue *NETWORK_ERRORS response.network_error = true end nil end |