Class: HttpClient
- Inherits:
-
Object
show all
- Defined in:
- lib/http_client.rb
Defined Under Namespace
Classes: Error, IOError, Response, Timeout
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(options = {}) ⇒ HttpClient
Returns a new instance of HttpClient.
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
# File 'lib/http_client.rb', line 79
def initialize(options = {})
options = {
:use_connection_pool => false,
:max_connections => 20,
:max_connections_per_route => nil,
:max_retries => 0,
:response_class => Response,
:connection_request_timeout => 100,
:connect_timeout => 1000,
:socket_timeout => 2000,
:default_request_options => {}
}.merge(options)
@request_config = create_request_config(options)
@connection_manager = create_connection_manager(options)
@client = HttpClients.create_minimal(@connection_manager)
@max_retries = options[:max_retries]
@response_class = options[:response_class]
@default_request_options = options[:default_request_options]
end
|
Instance Attribute Details
#client ⇒ Object
Returns the value of attribute client.
77
78
79
|
# File 'lib/http_client.rb', line 77
def client
@client
end
|
#default_request_options ⇒ Object
Returns the value of attribute default_request_options.
77
78
79
|
# File 'lib/http_client.rb', line 77
def default_request_options
@default_request_options
end
|
#max_retries ⇒ Object
Returns the value of attribute max_retries.
77
78
79
|
# File 'lib/http_client.rb', line 77
def max_retries
@max_retries
end
|
#response_class ⇒ Object
Returns the value of attribute response_class.
77
78
79
|
# File 'lib/http_client.rb', line 77
def response_class
@response_class
end
|
Instance Method Details
#cleanup_connections(max_idle = 5) ⇒ Object
152
153
154
|
# File 'lib/http_client.rb', line 152
def cleanup_connections(max_idle = 5)
@connection_manager.close_idle_connections(max_idle, TimeUnit::SECONDS)
end
|
#delete(uri, options = {}) ⇒ Object
126
127
128
129
|
# File 'lib/http_client.rb', line 126
def delete(uri, options = {})
request = create_request(HttpDelete, uri, options)
execute(request)
end
|
#get(uri, options = {}) ⇒ Object
99
100
101
102
103
|
# File 'lib/http_client.rb', line 99
def get(uri, options = {})
uri = uri.sub(/\?.+$|$/, "?#{URI.encode_www_form(options[:params])}") if options[:params]
request = create_request(HttpGet, uri, options)
execute(request)
end
|
#head(uri, options = {}) ⇒ Object
131
132
133
134
|
# File 'lib/http_client.rb', line 131
def head(uri, options = {})
request = create_request(HttpHead, uri, options)
execute(request)
end
|
#options(uri, options = {}) ⇒ Object
136
137
138
139
|
# File 'lib/http_client.rb', line 136
def options(uri, options = {})
request = create_request(HttpOptions, uri, options)
execute(request)
end
|
#patch(uri, options = {}) ⇒ Object
119
120
121
122
123
124
|
# File 'lib/http_client.rb', line 119
def patch(uri, options = {})
request = create_request(HttpPatch, uri, options)
entity = create_entity(options)
request.set_entity(entity) if entity
execute(request)
end
|
#pool_stats ⇒ Object
141
142
143
144
145
146
147
148
149
150
|
# File 'lib/http_client.rb', line 141
def pool_stats
raise "#{self.class.name}#pool_stats is supported only when using a connection pool" unless @connection_manager.is_a?(PoolingHttpClientConnectionManager)
total_stats = @connection_manager.total_stats
Hash(
:idle => total_stats.available,
:in_use => total_stats.leased,
:max => total_stats.max,
:waiting => total_stats.pending
)
end
|
#post(uri, options = {}) ⇒ Object
105
106
107
108
109
110
|
# File 'lib/http_client.rb', line 105
def post(uri, options = {})
request = create_request(HttpPost, uri, options)
entity = create_entity(options)
request.set_entity(entity) if entity
execute(request)
end
|
#put(uri, options = {}) ⇒ Object
112
113
114
115
116
117
|
# File 'lib/http_client.rb', line 112
def put(uri, options = {})
request = create_request(HttpPut, uri, options)
entity = create_entity(options)
request.set_entity(entity) if entity
execute(request)
end
|
#shutdown ⇒ Object
156
157
158
|
# File 'lib/http_client.rb', line 156
def shutdown
@connection_manager.shutdown
end
|